检索fbsdk访问令牌和用户ID的问题

时间:2016-05-05 08:33:26

标签: javascript facebook react-native fbsdk

我正在尝试在我的React Native App中检索登录用户的访问令牌和用户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)部分,以便我可以确定发生了什么。但它仍然返回了同样奇怪的标记&#34;。

登录时日志也会返回此错误:

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

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

有人能给我一个很好的猜测我做错了吗?

3 个答案:

答案 0 :(得分:3)

GetCurrentAccestoken返回一个承诺。

也许你可以试试:

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

答案 1 :(得分:1)

试试这个。它对我有用

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

答案 2 :(得分:0)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='user-submitted-title'/>
<textarea id='user-submitted-content'></textarea>