Android Facebook Graph API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Facebook Graph API相关的知识,希望对你有一定的参考价值。

有没有人有一个如何使用android Graph API的例子?

我坚持使用基础知识,比如在Facebook上发布文字。

我正在使用面向Android的Facebook SDK。这是我到目前为止:

    Bundle params = new Bundle();
    params.putString("message", "picture caption");

    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
    mAsyncRunner.request("me/feed", params, "POST", new RequestListener() {

        @Override
        public void onMalformedURLException(MalformedURLException e, Object state) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onIOException(IOException e, Object state) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onFileNotFoundException(FileNotFoundException e, Object state) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onFacebookError(FacebookError e, Object state) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onComplete(String response, Object state) {
            // TODO Auto-generated method stub

        }
    }, "foo");

什么都没发生,我的Logcat说:

03-02 22:10:02.973: WARN/Bundle(1930): Key message expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-02 22:10:02.983: WARN/Bundle(1930): Attempt to cast generated internal exception:
    03-02 22:10:02.983: WARN/Bundle(1930): java.lang.ClassCastException: java.lang.String
    03-02 22:10:02.983: WARN/Bundle(1930):     at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-02 22:10:02.983: WARN/Bundle(1930):     at com.facebook.android.Util.encodePostBody(Util.java:63)
    03-02 22:10:02.983: WARN/Bundle(1930):     at com.facebook.android.Util.openUrl(Util.java:182)
    03-02 22:10:02.983: WARN/Bundle(1930):     at com.facebook.android.Facebook.request(Facebook.java:559)
    03-02 22:10:02.983: WARN/Bundle(1930):     at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
答案

我想你用这个链接http://developers.facebook.com/docs/guides/mobile/#android

另一答案

试试这个

Bundle params = new Bundle();
params.putString(Facebook.TOKEN, token);   
params.putString("message", "graph api");       
mAsyncRunner.request("/me/feed", params,"POST", new SampleUploadListener(),null);

您可以使用获取访问令牌

      token = mFacebook.getAccessToken();
另一答案

你可以这样做: - 在捆绑消息中给出描述,如果你想从服务器分享一些图像,你可以提供我在下面给出的链接

 Bundle params = new Bundle();
        params.putString("message", "description");
        params.putString("link","your image url" );

new GraphRequest( AccessToken.getCurrentAccessToken(),
            "me/feed",
            params,
            HttpMethod.POST,
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    Log.d(TAG, "" + response.toString());
                    try {
                        JSONObject jsonObject = new JSONObject(response.getRawResponse());
                        if (jsonObject != null) {
                            String postId = jsonObject.getString("id");
                            if (postId != null && !postId.equalsIgnoreCase("")) {
                                hideProgressDialog();
                                Log.d("postId", "" + postId);
                            } else {
                                hideProgressDialog();
                                Utils.showToast(getActivity(), getResources().getString(R.string.txt_try_again));
                            }
                        } else {
                            hideProgressDialog();
                            Utils.showToast(getActivity(), getResources().getString(R.string.txt_try_again));
                        }

                    } catch (JSONException e) {
                        hideProgressDialog();
                        e.printStackTrace();
                    } catch (Throwable e) {
                        hideProgressDialog();
                        e.printStackTrace();
                    }

                }
            }).executeAsync();

以上是关于Android Facebook Graph API的主要内容,如果未能解决你的问题,请参考以下文章

Parse SDK Android - Facebook Graph API v2.0

使用 Android 中的 Graph API 在 Facebook 上直播视频

Android 应用中的 Facebook Graph API 字段扩展

如何为 android 制作更长的 facebook Graph API 会话

Android 如何在新的 sdk 3.0 中与 Facebook Open Graph 共享数据?

如何在 android 应用程序中使用多个 Graph API 获取 Facebook Notes Items 的评论?