【问题标题】:Permission for Facebook SDKFacebook SDK 的权限
【发布时间】:2013-11-19 03:34:02
【问题描述】:

之后我按下“登录 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): 重定向 URL: fbconnect://success?error_code=100&error_message=Invalid+Scope%3A+name&e2e=%7B%22init%22%3A1384798557797 %7D

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

谢谢。

【问题讨论】:

    标签: java android facebook facebook-sdk-3.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();
    
                                                                                          }
                                      }
                                  });
                      }
    
               }
              });
    

    【讨论】:

    • 非常感谢您。找到了,确实输入了“user_birthday”和“friends_birthday”:-) 但是没有找到“name, fullname, firstname or lastname”。
    • 它应该只用我相信的名字运行
    • 我已经包含了一个例子
    • 再次感谢您,将观看您的示例。不,扩展权限中没有“名称”..奇怪..谷歌的时间:)
    猜你喜欢
    • 2011-12-04
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多