2017-08-11 3 views
0

Hallo Leute Ich bin neu in der API-SDK PHP bieten von Facebook, jetzt habe ich einige Probleme mit einer einfachen GET-Abfrage hier es ist Code mein Controller:Facebook SDK hat einen Fehler zurückgegeben: Sie müssen ein Zugriffstoken

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

Der Fehler wirft mich "Facebook SDK gab einen Fehler zurück: Sie müssen ein Zugriffs-Token bereitstellen." PD: Ich arbeite mit Codeigniter

Antwort

0

Sie haben keinen Wert für $app_id und $app_secret angegeben.

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

app_id ist Ihre App-ID auf Facebook und app_secret ein Token ist die App von Facebook-API zuzugreifen. Erstellen Sie eine App auf Facebook Developer, dann erhalten Sie app_id und app_secret. Danach füllen diese Variable mit Ihrem eigenen app_id und app_secret wie folgt aus:

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

Hallo, ich habe bereits meine eigene app_id und app_secret ... Ich habe XXXXXX Wert, um es nicht anzuzeigen –

1

Wenn der Benutzer in Ihrer Anwendung nicht vorher angemeldet hat, wird Facebook SDK jede Zugriffstoken nicht erzeugen.

In diesem Fall:

$accessToken = $helper->getAccessToken(); 

Der obige Code wird einen Fehler fehlschlagen und zurückgeben, und das ist der Grund, warum dieser Code unter Block Try-Catch ist in offiziellen Facebook PHP SDK documentation

Sie sollten also Ihre ändern Code, um das Zugriffstoken zuerst zu generieren (wird generiert, nachdem der Benutzer Ihre App authentifiziert hat) und verwendet dann dieses Zugriffstoken zum Abrufen von Daten von den API-Endpunkten der Grafik.

+1

Danke es klingt gut, ich werde es versuchen –

Verwandte Themen