admin管理员组

文章数量:1025244

I am trying to retrieve the Access Token and User ID of the logged in user in my React Native App. For some reason when I tried to update the fbsdkcore package, it did not exist anymore. So, I tried to resolve it within the general fbsdk package.

I am calling the js file (of which I think retrieves the accesstoken) in the package as:

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

And subsequently in my code I try to log it so that I can see if it works, simply by:

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

But the log only returns:

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

Which does not seem to be the droids that im looking for.

I inspected the code for the js file in the fbsdk package and the getCurrentAccessToken code looks like this:

  /**
   * 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);
        }
      });
    });
  }

Which of course seems reasonable. But since I get this really weird result when I try to call it, I get worried over that I have done something wrong in the bigger picture. I even modified the resolve(null) part of the code so that I could make sure of what happend. But it still returned the same weird "token".

The log also returns this error when logging in:

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

But I think that is only because I don't have the facebook app on my xcode simulator.

Can anybody throw me a good guess on what I have done wrong??

I am trying to retrieve the Access Token and User ID of the logged in user in my React Native App. For some reason when I tried to update the fbsdkcore package, it did not exist anymore. So, I tried to resolve it within the general fbsdk package.

I am calling the js file (of which I think retrieves the accesstoken) in the package as:

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

And subsequently in my code I try to log it so that I can see if it works, simply by:

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

But the log only returns:

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

Which does not seem to be the droids that im looking for.

I inspected the code for the js file in the fbsdk package and the getCurrentAccessToken code looks like this:

  /**
   * 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);
        }
      });
    });
  }

Which of course seems reasonable. But since I get this really weird result when I try to call it, I get worried over that I have done something wrong in the bigger picture. I even modified the resolve(null) part of the code so that I could make sure of what happend. But it still returned the same weird "token".

The log also returns this error when logging in:

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

But I think that is only because I don't have the facebook app on my xcode simulator.

Can anybody throw me a good guess on what I have done wrong??

Share Improve this question asked May 5, 2016 at 8:33 Niklas LindekeNiklas Lindeke 3901 gold badge7 silver badges25 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 5

GetCurrentAccestoken returns a promise.

Maybe you can try:

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

Try this. It worked for me

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

I am trying to retrieve the Access Token and User ID of the logged in user in my React Native App. For some reason when I tried to update the fbsdkcore package, it did not exist anymore. So, I tried to resolve it within the general fbsdk package.

I am calling the js file (of which I think retrieves the accesstoken) in the package as:

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

And subsequently in my code I try to log it so that I can see if it works, simply by:

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

But the log only returns:

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

Which does not seem to be the droids that im looking for.

I inspected the code for the js file in the fbsdk package and the getCurrentAccessToken code looks like this:

  /**
   * 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);
        }
      });
    });
  }

Which of course seems reasonable. But since I get this really weird result when I try to call it, I get worried over that I have done something wrong in the bigger picture. I even modified the resolve(null) part of the code so that I could make sure of what happend. But it still returned the same weird "token".

The log also returns this error when logging in:

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

But I think that is only because I don't have the facebook app on my xcode simulator.

Can anybody throw me a good guess on what I have done wrong??

I am trying to retrieve the Access Token and User ID of the logged in user in my React Native App. For some reason when I tried to update the fbsdkcore package, it did not exist anymore. So, I tried to resolve it within the general fbsdk package.

I am calling the js file (of which I think retrieves the accesstoken) in the package as:

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

And subsequently in my code I try to log it so that I can see if it works, simply by:

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

But the log only returns:

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

Which does not seem to be the droids that im looking for.

I inspected the code for the js file in the fbsdk package and the getCurrentAccessToken code looks like this:

  /**
   * 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);
        }
      });
    });
  }

Which of course seems reasonable. But since I get this really weird result when I try to call it, I get worried over that I have done something wrong in the bigger picture. I even modified the resolve(null) part of the code so that I could make sure of what happend. But it still returned the same weird "token".

The log also returns this error when logging in:

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

But I think that is only because I don't have the facebook app on my xcode simulator.

Can anybody throw me a good guess on what I have done wrong??

Share Improve this question asked May 5, 2016 at 8:33 Niklas LindekeNiklas Lindeke 3901 gold badge7 silver badges25 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 5

GetCurrentAccestoken returns a promise.

Maybe you can try:

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

Try this. It worked for me

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

本文标签: javascriptIssues retrieving fbsdk Access Token and User IDStack Overflow