2016-05-05 40 views
0

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

我打电话的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的应用程序。

任何人都可以推测我做错了吗?

回答

1

GetCurrentAccestoken返回承诺。

也许你可以试试:

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

此外,采用了时下'进口{}的accessToken从“反应母语,fbsdk''导入 – mtkopone

0

试试这个。它的工作对我来说

AccessToken.getCurrentAccessToken().then(
     (data) => { 
      console.log(data.accessToken) 
      console.log(data.userID); 
    }); 
0
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); 
      } 
     ); 
相关问题