Facebook SDK的许可

时间:2013-11-18 18:27:06

标签: java android facebook facebook-sdk-3.0

之后我按“登录Facebook ”按钮并登录,它将崩溃。 问题是对我的应用程序所需的一些内容的许可。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_social_login, container,
            false);
    LoginButton authButton = (LoginButton) view
            .findViewById(R.id.authButton);
    authButton.setFragment(this);
    authButton.setReadPermissions(Arrays.asList("name", "user_birthday",
            "friends_birthday"));

当我评论这一行时,一切都会很好。

  

authButton.setReadPermissions(Arrays.asList(“name”,“user_birthday”,                   “friends_birthday”));

但是当我删除评论时,我会收到此错误。

  

11-18 13:16:03.983:D / FacebookSDK.WebDialog(2362):重定向网址:fbconnect://成功?error_code = 100& error_message =无效+范围%3A +名称& e2e =%7B%22init %22%3A1384798557797%7D

有人知道这个错误吗?无效的范围&名称,与Graph API有关吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

当您打开应用程序以编辑Facebook开发人员网站上的设置时,会有侧栏显示权限。只需在扩展权限中键入您需要的那些。我知道这更像是一种解决方案,但它是您提供的最少代码的最佳选择。

这是一个例子

// set permission list
          authButton.setReadPermissions(Arrays.asList("basic_info","email"));
          // session state call back event
          authButton.setSessionStatusCallback(new Session.StatusCallback() {

           @SuppressWarnings("deprecation")
        @Override
           public void call(Session session, SessionState state, Exception exception) {

            if (session.isOpened()) {
                      Log.i(TAG,"Access Token"+ session.getAccessToken());
                      Request.executeMeRequestAsync(session,
                              new Request.GraphUserCallback() {
                                  @Override
                                  public void onCompleted(GraphUser user,Response response) {
                                      if (user != null) { 
                                       Log.i(TAG,"User ID "+ user.getId());
                                       Log.i(TAG,"Email "+ user.asMap().get("email"));
                                       Log.i(TAG,"Name "+ user.asMap().get("name"));
                                       uName = user.asMap().get("name").toString();
                                       savePreferences();
                                       restorePreferences();

                                                                                      }
                                  }
                              });
                  }

           }
          });