Jeeva123
Jeeva123

Reputation: 1047

Android Post Message to Facebook Wall Without Open DialogBox?

I'm doing one application, In that application i want to post message to facebook wall without open dialogbox.

My complete facebook wall post code:

Facebook mFacebook = new Facebook("xxxxxxxxxxxxxxxx");//MY APP ID
        Log.d("Tests", "Testing graph API wall post");
        try {
            String response = mFacebook.request("xxxxxxx");//USER ID
            Bundle parameters = new Bundle();
            parameters.putString("message", "hi hi hi");
            parameters.putString("description", "test test test");
            response = mFacebook.request("xxxxxxxx/feed", parameters,"POST");
            if (response == null || response.equals("") || 
                    response.equals("false")) {
                Log.v("Error", "Blank response");
            }
        } catch(Exception e) {
            e.printStackTrace();
        } 

This code showing error,

logcat error:

10-27 23:19:53.369: WARN/System.err(9330): java.net.MalformedURLException: Protocol not found: me?format=json
10-27 23:19:53.369: WARN/System.err(9330):     at java.net.URL.<init>(URL.java:273)
10-27 23:19:53.369: WARN/System.err(9330):     at java.net.URL.<init>(URL.java:157)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.Facebook.Util.openUrl(Util.java:151)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.Facebook.Facebook.request(Facebook.java:564)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.Facebook.Facebook.request(Facebook.java:500)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.birthdayreminder.DetailsPage.PostMessageToWall(DetailsPage.java:202)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.birthdayreminder.DetailsPage.access$1(DetailsPage.java:197)
10-27 23:19:53.369: WARN/System.err(9330):     at com.whitehorse.birthdayreminder.DetailsPage$3.onClick(DetailsPage.java:149)
10-27 23:19:53.369: WARN/System.err(9330):     at android.view.View.performClick(View.java:2485)
10-27 23:19:53.369: WARN/System.err(9330):     at android.view.View$PerformClick.run(View.java:9080)
10-27 23:19:53.369: WARN/System.err(9330):     at android.os.Handler.handleCallback(Handler.java:587)
10-27 23:19:53.369: WARN/System.err(9330):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-27 23:19:53.369: WARN/System.err(9330):     at android.os.Looper.loop(Looper.java:130)
10-27 23:19:53.369: WARN/System.err(9330):     at android.app.ActivityThread.main(ActivityThread.java:3687)
10-27 23:19:53.369: WARN/System.err(9330):     at java.lang.reflect.Method.invokeNative(Native Method)
10-27 23:19:53.369: WARN/System.err(9330):     at java.lang.reflect.Method.invoke(Method.java:507)
10-27 23:19:53.379: WARN/System.err(9330):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
10-27 23:19:53.379: WARN/System.err(9330):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
10-27 23:19:53.379: WARN/System.err(9330):     at dalvik.system.NativeStart.main(Native Method)

Please give some advice about facebook SDK,

Thanks,

Upvotes: 0

Views: 1986

Answers (2)

L.C. Echo Chan
L.C. Echo Chan

Reputation: 596

Facebook facebook = new Facebook(APP_ID);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
Bundle params = new Bundle();
params.putString("message", Message);
String resp= "";
try {
    resp = mAsyncRunner.request("me/feed", params, "POST");
/*
There are not only one request function in the SDK.(with different parameter)
Try the read the source code in the SDK. 
There are brief remarks on each function and parameters.
You can post wall with above request function and get the postID with the following code.
*/
} catch (FileNotFoundException e) {
} catch (MalformedURLException e) {
} catch (IOException e) {
}
try{
    resp = new JSONObject(resp).getString("id");//POST ID Here
}catch(JSONException e1){
}
};

Upvotes: 1

Jesse Chen
Jesse Chen

Reputation: 4928

This is the code I used for my app to post a message to the Facebook wall without a dialog:

Facebook facebook = new Facebook(MY_APP_ID);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
params.putString("caption", "My Caption");
params.putString("description", "description here");
params.putString("picture", "http://nyan-cat.com/images/nyan-cat.gif");
params.putString("name", "name string");
params.putString("message", "my message here");
mAsyncRunner.request("me/feed", params, "POST", new RequestListener() {
    @Override
    public void onFacebookError(FacebookError e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    @Override
    public void onFileNotFoundException(FileNotFoundException e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    @Override
    public void onIOException(IOException e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    @Override
    public void onMalformedURLException(MalformedURLException e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

}

Upvotes: 2

Related Questions