Php Facebook SDK返回错误:您必须提供访问令牌
大家好,我是Facebook的PHP SDK API新手,现在我在一个简单的GET查询中遇到了一些问题。这里是我的控制器代码:Php Facebook SDK返回错误:您必须提供访问令牌,php,facebook,codeigniter,facebook-graph-api,Php,Facebook,Codeigniter,Facebook Graph Api,大家好,我是Facebook的PHP SDK API新手,现在我在一个简单的GET查询中遇到了一些问题。这里是我的控制器代码: <?php defined('BASEPATH') or exit('No direct script access allowed'); class Facebook extends CI_Controller { public $app_id = 'XXXXXXXX'; public $app_secret = 'XXXXXXXXXX';
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Facebook extends CI_Controller
{
public $app_id = 'XXXXXXXX';
public $app_secret = 'XXXXXXXXXX';
public function __construct()
{
parent::__construct();
$this->load->library('FacebookSDK');
}
public function index()
{
$fb = new Facebook\Facebook(array(
'app_id' => $this->app_id,
'app_secret' => $this->app_secret,
'default_graph_version' => 'v2.10',
));
$helper = $fb->getRedirectLoginHelper();
$accessToken = $helper->getAccessToken();
try {
$request = $fb->get('/me/events', $accessToken);
$eventos = $request->getGraphObject()->asArray();
$datos['eventos'] = $eventos;
$this->load->view(home, $datos);
/* handle the result */
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: '.$e->getMessage();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: '.$e->getMessage();
}
}
}
您尚未提供$app\u id
和$app\u secret
的值
public $app_id = 'XXXXXXXX';
public $app_secret = 'XXXXXXXXXX';
app_id
是你在Facebook上的应用id,app_secret
是从Facebook API访问你的应用的令牌
在上创建一个应用程序,然后您将获得app\u id
和app\u secret
。然后用您自己的app\u id
和app\u secret
填充该变量,如下所示:
public $app_id = '123124123123';
public $app_secret = 'd45f11ba49e93122b94ea814c1d7611c';
如果用户以前没有登录过你的应用程序,Facebook SDK将不会生成任何访问令牌
在这种情况下:
$accessToken = $helper->getAccessToken();
上述代码将失败并返回一个错误,这就是为什么该代码在官方的try-catch块下的原因
因此,您应该先更改代码以生成访问令牌(它将在用户验证您的应用程序后生成),然后使用该访问令牌从graph API端点获取数据。Hi,我已经有了自己的应用程序id和应用程序机密。。。我将XXXXXX值设置为不显示它