所以,今天早上我收到了以下错误:
{"errors": [{"message": "The Twitter REST API v1 will soon stop functioning.
Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.",
"code": 68}]}
由于我使用的是tmhOauth twitter api,我去查看是否有更新,因为似乎列出了here的问题。
我正在使用api用这样的媒体更新状态:
$code = $tmhOAuth->request('POST', 'https://upload.twitter.com/1/statuses/update_with_media.json',
array(
'media[]' => "@{$image}",
'status' => "{$text}"
),
true, // use auth
true // multipart
);
我发现我应该更改链接以使用1.1
代替1
,但它仍然无效。
答案 0 :(得分:4)
我的主要问题是我没有完全阅读文档!虽然从1
到1.1
的网址变化已经足够了但我没有看到update_with_media的新网址,
正如documentation中所解释的那样,https://api.twitter.com/1.1/statuses/update_with_media.json
是 api ,而不是旧的上传子域。
所以,现在我的api电话看起来像这样,一切都有效:
$code = $tmhOAuth->request('POST', 'https://api.twitter.com/1.1/statuses/update_with_media.json',
array(
'media[]' => "@{$image}",
'status' => "{$text}"
),
true, // use auth
true // multipart
);
希望这有助于某人。
答案 1 :(得分:0)
使用abraham的twitteroauth api(更新到1.1版),而不是使用tmhOauth api:
https://github.com/abraham/twitteroauth/tree/master/twitteroauth
并按如下方式替换您的代码:
$connection = new TwitterOAuth($twitter_consumer_key, $twitter_consumer_secret, $twAccessToken, $twAccessTokenSecret);
$parameters = array(
'media[]' => "@{$image}",
'status' => "{$text}"
);
$code = $connection->post('statuses/update_with_media', $parameters);