Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook SDK返回错误:您必须提供访问令牌_Php_Facebook_Codeigniter_Facebook Graph Api - Fatal编程技术网

Php Facebook SDK返回错误:您必须提供访问令牌

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

大家好,我是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';

    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值设置为不显示它