2017-08-11 11 views
0

FacebookのPHP SDK APIの新機能です。ここで簡単なGETクエリに問題があります。コントローラのコードはFacebook SDKがエラーを返しました:アクセストークンを提供する必要があります

です
<?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(); 
     } 
    } 
} 

エラーが発生しました。「Facebook SDKがエラーを返しました:アクセストークンを提供する必要があります。」 PD:Codeigniterと協力しています

答えて

0

$app_id$app_secretの値を指定していません。

public $app_id = 'XXXXXXXX'; 
public $app_secret = 'XXXXXXXXXX'; 

app_idのFacebook上のアプリのIDで、app_secretは、FacebookのAPIから、あなたのアプリにアクセスするためのトークンです。

Facebook Developerにアプリを作成すると、app_idapp_secretが表示されます。その後、このようなapp_idapp_secretあなた自身でその変数を埋める:ユーザーが以前にアプリにログインしていない

public $app_id = '123124123123'; 
public $app_secret = 'd45f11ba49e93122b94ea814c1d7611c'; 
+0

こんにちは、私はすでに自分のapp_idとapp_secretを持っています...私はXXXXXXの値を表示しないようにします –

1

場合は、FacebookのSDKには、任意のアクセストークンを生成しません。その場合

$accessToken = $helper->getAccessToken(); 

上記のコードは失敗し、返し、エラーをしているが、このコードは、公式Facebook PHP SDK documentation

でtry-catchブロックの下にある、なぜあなたはあなたを変えるべき理由であるだろう最初にアクセストークンを生成するコード(ユーザーがアプリを認証した後に生成されます)を作成し、そのアクセストークンを使用してグラフAPIエンドポイントからデータを取得します。

+1

おかげでいいですね、それを試してみよう –

関連する問題