I use the following code to post to friends wall:
public void postFB(){
Bundle params = new Bundle();
params.putString("name", "An example parameter");
params.putString("link", "https://www.example.com/");
params.putString("to", "1481597430");
WebDialog feedDialog = (
new WebDialog.FeedDialogBuilder(getActivity(),
Session.getActiveSession(),
params))
.setOnCompleteListener(new OnCompleteListener(){
@Override
public void onComplete(Bundle values,
FacebookException error) {
System.out.println("Complete "+error +"Values "+values);
}})
.build();
feedDialog.show();
}
The scenario here is that I am using another snippet to login to facebook using thier LoginButton, and I want to post this post in another snippet. While my application requires the user to log into FB only the first time it starts, does this mean that every time I want to send a message to my friends wall, will I need to first ask the user to register?
As in the second run, if I try to send a message to my friends wall, I get the following error:
03-15 16:13:06.679: E/AndroidRuntime(8206): java.lang.NullPointerException: Argument 'session' cannot be null
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.facebook.internal.Validate.notNull(Validate.java:29)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.facebook.widget.WebDialog$BuilderBase.<init>(WebDialog.java:461)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.facebook.widget.WebDialog$FeedDialogBuilder.<init>(WebDialog.java:626)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.exa.birthdayrem.Fragment1_3.postFB(Fragment1_3.java:73)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.exa.birthdayrem.Fragment1_3$1.onClick(Fragment1_3.java:255)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.view.View.performClick(View.java:4091)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.view.View$PerformClick.run(View.java:17072)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.os.Handler.handleCallback(Handler.java:615)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.os.Handler.dispatchMessage(Handler.java:92)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.os.Looper.loop(Looper.java:153)
03-15 16:13:06.679: E/AndroidRuntime(8206): at android.app.ActivityThread.main(ActivityThread.java:5000)
03-15 16:13:06.679: E/AndroidRuntime(8206): at java.lang.reflect.Method.invokeNative(Native Method)
03-15 16:13:06.679: E/AndroidRuntime(8206): at java.lang.reflect.Method.invoke(Method.java:511)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
03-15 16:13:06.679: E/AndroidRuntime(8206): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
03-15 16:13:06.679: E/AndroidRuntime(8206): at dalvik.system.NativeStart.main(Native Method)
User3 source
share