Я пытаюсь получить твиты, используя Abraham / twitteroAuth: https://github.com/abraham/twitteroauth . это мой контроллер:
<?php
namespace App\Controller;
use App\Controller\AppController;
use Abraham\TwitterOAuth\TwitterOAuth;
class TweetsController extends AppController
{
public function index()
{
$oauth_access_token = 'XXXXXXXX';
$oauth_access_token_secret = 'XXXXXXXX';
$consumer_key = 'XXXXXXXXXX';
$consumer_secret = 'XXXXXXXX';
$connection = new TwitterOAuth($consumer_key,$consumer_secret,$oauth_access_token,$oauth_access_token_secret);
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=hello&count=5");
$this->set('tweets', $tweets);
}}
И это мой взгляд index.ctp:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Twitter search</title>
</head>
<body>
<div class="tweets index large-10 medium-9 columns">
<?php foreach ($tweets as $tweet): ?>
<?php foreach ($tweet as $t): ?>
<p><?= $t->text ?><br></p>;
<?php endforeach; ?>
<?php endforeach; ?>
</div>
</body>
</html>
но я не получаю никаких твитов. когда я пытаюсь отладить ($ твиты); в моем контроллере я получаю это:
object(stdClass) {
errors => [
(int) 0 => object(stdClass) {
message => 'Sorry, that page does not exist'
code => (int) 34
}
]
}
TwitterOAuth :: get () нужен только путь, а не полный URL, а параметры должны быть заданы в виде массива, а не строки запроса. Попробуйте это вместо этого:
$tweets = $connection->get("search/tweets.json", ['q' => 'hello', 'count' => 5);
Просмотрите исходный код TwitterOAuth, чтобы узнать больше: https://github.com/abraham/twitteroauth/blob/master/src/TwitterOAuth.php#L177
Других решений пока нет …