1

我是 Symfony3 的新手,正在尝试学习 api 连接。

只需使用endroid_twitter包。

我将 twitter api 密钥复制到 parameters.yml 但是当我尝试在 DefaultController.php 上使用此密钥时,它出错并且无法获取密钥。

这里:“未定义的变量”

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

参数.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');

    }
}
4

1 回答 1

0

您需要做出不同的声明来创建新的 twitter 服务。

尝试这个:

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

而不是这个:

$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
于 2017-07-13T10:41:31.803 回答