2017-07-13 3 views
1

Je suis nouveau à Symfony3 et j'essaie d'apprendre les connexions API.Obtenir les paramètres de paramètres.yml sur Symfony3

Utilisation du lot endroid_twitter.

J'ai copié les clés api de paramètres.yml sur Twitter, mais lorsque j'essaie d'utiliser ces touches sur DefaultController.php, cela se passe mal et ne peut pas obtenir les clés.

ici: "variables non définies"

$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); 

de parameters.yml

parameters: 
    database_host: 127.0.0.1 
    database_port: null 
    database_name: api 
    database_user: root 
    database_password: null 
    mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    secret: ThisTokenIsNotSoSecretChangeIt 

endroid_twitter: 
    consumer_key: 'consumer_key' 
    consumer_secret: 'consumer_secret' 
    access_token: 'access_token' 
    access_token_secret: 'access_token_secret' 

DefaultController.php

<?php 

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use Endroid\Twitter\Twitter; 

class DefaultController extends Controller 
{ 

    /** 
    * @Route("/", name="homepage") 
    */ 
    public function indexAction(Request $request) 
    { 

     $twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); 

     $response = $twitter->query('/statuses/user_timeline', 'GET', 'json', $parameters); 
     $tweets = json_decode($response->getContent()); 



     $text = $tweets[5]->text; 

     print_r($text); 

     return $this->render('default/index.html.twig'); 

    } 
} 
+0

Faites défiler jusqu'à la fin des instructions pour voir comment l'utiliser dans une application Symfony. L'approche de base est un peu différente: https://packagist.org/packages/endroid/twitter – Cerad

Répondre

0

Vous devez faire une déclaration différente pour créer une nouvelle service twitter.

Essayez ceci:

$twitter = $this->get('endroid.twitter'); 

au lieu de ceci:

$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); 
+0

je reçois toujours la même erreur _Le paramètre "consumer_key" doit être défini._ – onurkaya

+0

Ok j'ai mis à jour ma réponse, essayez maintenant s'il vous plaît –

+0

Okey, ça me manque. Ça marche. Merci! – onurkaya