在Android中获取用户脸书喜欢和属性(Facebook SDK 3.18)

时间:2015-03-28 17:47:10

标签: android facebook facebook-sdk-3.0 facebook-sdk-4.0

这是我的登录功能: -

public void loginToFacebook() {
        mPrefs = getPreferences(MODE_PRIVATE);
        access_token = mPrefs.getString("access_token", null);
        long expires = mPrefs.getLong("access_expires", 0);

        if (access_token != null) {
            facebook.setAccessToken(access_token);
        }

        if (expires != 0) {
            facebook.setAccessExpires(expires);
        }

        if (!facebook.isSessionValid()) {
            facebook.authorize(this,new String[] { "email", "publish_stream" },
                    new DialogListener() {

                        @Override
                        public void onCancel() {
                            // Function to handle cancel event
                        }

                        @Override
                        public void onComplete(Bundle values) {
                            // Function to handle complete event
                            // Edit Preferences and update facebook acess_token
                            SharedPreferences.Editor editor = mPrefs.edit();
                            editor.putString("access_token",
                                    facebook.getAccessToken());
                            editor.putLong("access_expires",
                                    facebook.getAccessExpires());
                            editor.commit();
                        }

                        @Override
                        public void onError(DialogError error) {
                            // Function to handle error

                        }

                        @Override
                        public void onFacebookError(FacebookError fberror) {
                            // Function to handle Facebook errors

                        }

                    });
        }
    }

这是我的功能,以获取Facebook喜欢和属性:

public void getProfileInformation() {
        mAsyncRunner.request("me", new RequestListener() {
            @Override
            public void onComplete(String response, Object state) {
                Log.d("Profile", response);
                String json = response;
                try {
                    JSONObject profile = new JSONObject(json);
                    id=profile.getString("id");
                    // getting name of the user
                    name = profile.getString("name");
                    // getting email of the user
                    email = profile.getString("email");
                    //about=profile.getString(about);
                    bio=profile.getString(bio);
                    birthday=profile.getString(birthday);
                    gender=profile.getString(gender);
                    link=profile.getString(link);
                    locale=profile.getString(locale);
                    political=profile.getString(political);
                    quotes=profile.getString(quotes);
                    relationship_status=profile.getString(relationship_status);
                    relegion=profile.getString(relegion);
                    website=profile.getString(website);

                    Log.d("Name",name);



                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            Toast.makeText(getApplicationContext(), "Name: " + name + "\nEmail: " + email, Toast.LENGTH_LONG).show();
                        }

                    });

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

            @Override
            public void onIOException(IOException e, Object state) {
            }

            @Override
            public void onFileNotFoundException(FileNotFoundException e,
                    Object state) {
            }

            @Override
            public void onMalformedURLException(MalformedURLException e,
                    Object state) {
            }

            @Override
            public void onFacebookError(FacebookError e, Object state) {
            }
        });
        //Getting Facebook Like
        Session session = Session.getActiveSession();
             new Request(
                     session,
                     "/{id}/likes",
                null,
                HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        Log.d("Facebook Likes", response.toString());
                    }
                }
        ).executeAsync();
        /*Session session = Session.getActiveSession();
        Request.Callback callback = new Request.Callback() {

            @Override
            public void onCompleted(Response response) {
                // response should have the likes
                Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();
                Log.d("Facebook Likes", response.toString());
            }
        };
        Request request = new Request(session, "me/likes", null, HttpMethod.GET, callback);
        RequestAsyncTask task = new RequestAsyncTask(request);
        task.execute();*/

错误: - D /请求:警告:无会话请求需要令牌,但缺少应用程序ID或客户端令牌。

我得到其他属性 28959-29486 / com.example.sensetest D / Profile:{" id":" ************"," email&# 34;:" ***********""如first_name":" ***""性别&# 34;:"男性""姓氏":" ****""连结":" *** *""区域设置":" EN_US"" middle_name":"辛格""名称" :" Rituraj Singh Rathore"," timezone":5.5," updated_time":" 2015-03-22T11:01:08 + 0000" "验证":真}

问题是我无法获得已登录用户的Facebook喜欢。我也试过How to get user likes from Facebook with Android sdk 3.0。 但我没有得到理想的结果。 请帮我解决这个问题,我在哪里做错了。我该怎么做才能做到对不对?

0 个答案:

没有答案