【问题标题】:Issues retrieving fbsdk Access Token and User ID检索 fbsdk 访问令牌和用户 ID 时出现问题
【发布时间】:2016-08-30 23:15:21
【问题描述】:

我正在尝试在我的 React Native 应用程序中检索登录用户的访问令牌和用户 ID。由于某种原因,当我尝试更新 fbsdkcore 包时,它不再存在。所以,我试图在一般的 fbsdk 包中解决它。

我正在调用包中的js文件(我认为它检索accesstoken)为:

const AccessToken = require('react-native-fbsdk/js/FBAccessToken');

随后在我的代码中我尝试记录它,以便我可以查看它是否有效,只需:

console.log(AccessToken.getCurrentAccessToken());
console.log(AccessToken.getUserId);

但是日志只返回:

2016-05-05 10:22:28.276 [info][tid:com.facebook.React.JavaScript] { _45: 0, _81: 0, _65: null, _54: null }
2016-05-05 10:22:28.277 [info][tid:com.facebook.React.JavaScript] undefined

这似乎不是我要寻找的机器人。

我检查了 fbsdk 包中的 js 文件的代码,getCurrentAccessToken 代码如下所示:

  /**
   * Getter for the access token that is current for the application.
   */
  static getCurrentAccessToken(): Promise<?FBAccessToken> {
    return new Promise((resolve, reject) => {
      AccessToken.getCurrentAccessToken((tokenMap) => {
        if (tokenMap) {
          resolve(new FBAccessToken(tokenMap));
        } else {
          resolve(null);
        }
      });
    });
  }

这当然是合理的。但是,当我尝试调用它时,我得到了这个非常奇怪的结果,我担心我在更大的范围内做错了什么。我什至修改了代码的resolve(null) 部分,以便我可以确定发生了什么。但它仍然返回了同样奇怪的“令牌”。

登录时日志也返回这个错误:

2016-05-05 10:22:07.630 AppName[15097:415865] -canOpenURL: failed for URL: "fbauth2:/" - error: "(null)"

但我认为这只是因为我的 xcode 模拟器上没有 facebook 应用程序。

谁能给我一个很好的猜测我做错了什么??

【问题讨论】:

    标签: javascript facebook react-native fbsdk


    【解决方案1】:

    GetCurrentAccestoken 返回一个承诺。

    也许你可以试试:

    AccessToken.getCurrentAccessToken().then(
        (data) => {
            console.log(data.accessToken.toString())
        }
    )
    

    【讨论】:

    • 另外,现在用import { AccessToken } from 'react-native-fbsdk'导入
    【解决方案2】:

    试试这个。它对我有用

    AccessToken.getCurrentAccessToken().then(
          (data) => {
                console.log(data.accessToken)
                console.log(data.userID);
      });
    

    【讨论】:

      【解决方案3】:
      LoginManager.logInWithReadPermissions(['public_profile']).then(
                  function (result) {
                      if (result.isCancelled) {
                          alert('Login cancelled');
                      } else {
                          // alert('Login success with permissions: ' +
                          //     result.grantedPermissions.toString());
                          AccessToken.getCurrentAccessToken().then(
                              (data) => {
                                  doLoginViaFb(data.userID, data.accessToken);
      
                              }
                          );
      
                          alert(result);
                          console.log(result.toString());
                          console.log(JSON.stringify(result));
                      }
                  },
                  function (error) {
                      alert('Login fail with error: ' + error);
                  }
              );
      

      【讨论】:

      • 当我使用它时。是pr登录失败
      猜你喜欢
      • 2011-12-09
      • 2019-08-28
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2016-04-08
      • 2021-03-31
      • 2023-03-05
      相关资源
      最近更新 更多