douhandie6615 2012-07-28 23:04
浏览 71
已采纳

Facebook SDK getAccessToken()问题

I have been having some trouble with the facebook SDK, specifically retrieving an access token. The App is set up on Facebook correctly and has been given permission. As far as I can tell, the code is correct and I am not sure what is going wrong with getAccessToken().

$facebook->getAccessToken(); is returning "12345678|abcdefghijklmnop", basically some kind of variable which is made up of the App ID and Secret ID separated by a |

$facebook->getUser(); is returning '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();
?>

Thank you in advance!

  • 写回答

2条回答 默认 最新

  • douxueke5653 2012-07-28 23:16
    关注

    From 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;
      }
    

    Your access token will be APP ID|APP SECRET which is the application token, or A RANDOM TOKEN HERE, which is the user access token, when you have a user signed:

    $facebook->getUser();
    

    When getUser() return 0 (which is same as false, and user not signed) you need to request a login, and authorization (if have not authorized yet) for your application:

    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;
    }
    

    see available permissions types here: https://developers.facebook.com/docs/authentication/permissions/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决