使用Twitter API搜索推文时,“无法使用stdClass类型的对象作为数组”错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Twitter API搜索推文时,“无法使用stdClass类型的对象作为数组”错误相关的知识,希望对你有一定的参考价值。
我目前正在开发一个项目,我正在尝试搜索推文,然后将它们保存在数据库中。对于这个项目,我正在使用Laravel和TwitterOAuth。
这是代码:
class TwitterController extends BaseController
{
public function test() {
$connection = new TwitterOAuth('',
'',
'',
'');
$content = $connection->get('account/verify_credentials');
$tweets = $connection->get('search/tweets',
['q' => "cryptocurrency"]);
foreach($tweets as $tweet) {
$tweet_id = $tweet[0]->id;
$oembed_j = file_get_contents('https://publish.twitter.com/oembed?url=https://twitter.com/x/status/' . $tweet_id);
$oembed = json_decode($oembed_j);
$twitter = new Twitter;
$twitter->url = $oembed->url;
$twitter->author_name = $oembed->author_name;
$twitter->author_url = $oembed->author_url;
$twitter->html = $oembed->html;
$twitter->width = $oembed->width;
$twitter->height = $oembed->height;
$twitter->type = $oembed->type;
$twitter->cache_age = $oembed->cache_age;
$twitter->provider_name = $oembed->provider_name;
$twitter->provider_url = $oembed->provider_url;
$twitter->version = $oembed->version;
$twitter->save();
}
}
}
和错误:
"(1/1) FatalErrorException
Cannot use object of type stdClass as array
in TwitterController.php (line 27)"
答案
因为$tweets
是一个具有statuses
属性的对象,所以你需要像这样迭代它:
foreach ($tweets->statuses as $tweet)
以上是关于使用Twitter API搜索推文时,“无法使用stdClass类型的对象作为数组”错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Twitter搜索API获取具有给定主题标签的所有推文?
当有人使用twitter api和php发布推文时如何获得通知
当流媒体推文时,如何在Twitter Api中使用tweet_mode ='extended'?
从我的网站向 Twitter 帐户发布推文时如何使文本变为粗体或斜体