Facebook的SDK getAccessToken()问题(Facebook SDK getAc

2019-09-20 09:09发布

我一直有一些麻烦与Facebook的SDK,特别是获取一个访问令牌。 应用程序是正确设置在Facebook上,并已获准。 据我所知,该代码是正确的,我不知道什么是与getAccessToken脚麻()。

$ facebook-> getAccessToken(); 将返回“12345678 | abcdefghijklmnop”,基本上某种其由应用ID和秘密ID通过一个分离的可变的|

$ facebook->的getUser(); 是返回“0”

<?php
     require_once("facebook.php"); //Up-to-date SDK files from Git

     $app_id = "12345678"; //replaced with fake
     $app_secret = "abcdefghijklmnop"; //replaced with fake

     $facebook = new Facebook(array(
         'appId' => $app_id,
         'secret' => $app_secret,
         'cookie' => true; //I have tried 'false' here as well
     ));

     $token = $facebook->getAccessToken();
?>

先感谢您!

Answer 1:

从Facebook SDK:

  public function getAccessToken() {
    if ($this->accessToken !== null) {
      return $this->accessToken;
    }

    $this->setAccessToken($this->getApplicationAccessToken());
    $user_access_token = $this->getUserAccessToken();
    if ($user_access_token) {
      $this->setAccessToken($user_access_token);
    }

    return $this->accessToken;
  }

  protected function getApplicationAccessToken() {
    return $this->appId.'|'.$this->appSecret;
  }

您的访问令牌将APP ID|APP SECRET这是应用程序的令牌,或者A RANDOM TOKEN HERE ,这是用户访问令牌,当你有一个用户签:

$facebook->getUser();

getUser()返回0 (这是一样的false ,和用户没有签署),你需要申请注册和授权为您的应用程序(如果尚未授权):

if (!$facebook->getUser())
{
    $login_url = $facebook->getLoginUrl(array(
            'scope' => 'publish_stream' // Permissions goes here
        ) 
    );
?>
    <script type="text/javascript">
        top.location.href = " <?php echo $login_url; ?>";
    </script>
<?php
    exit;
}

查看可用权限类型在这里: https://developers.facebook.com/docs/authentication/permissions/



Answer 2:

$facebook->getAccessToken(); 将返回"12345678|abcdefghijklmnop" ,基本上某种其由应用ID和秘密ID通过一个分离的可变的|



文章来源: Facebook SDK getAccessToken() problems