如何使用 Twitter V2 API 拨打电话
Posted
技术标签:
【中文标题】如何使用 Twitter V2 API 拨打电话【英文标题】:How to make a call with the Twitter V2 API 【发布时间】:2021-07-18 09:04:32 【问题描述】:我正在使用下面的代码来搜索带有查询参数的推文。这适用于 Twitter V1 API,但不适用于 V2,在广泛阅读他们的 API 文档后,我很困惑。
我的第一个问题是,V1 和 V2 是否共享相同的身份验证?即我可以使用此代码调用 V2,假设我的端点 url 是正确的,这会导致第二个问题,如果我可以使用与 V1 相同的身份验证来调用 V2,那么正确的端点是什么?到目前为止,显着的区别是查询参数,即 V1 的“q”和 V2 的“查询”。然后显然不需要 .json,但我在 V2 端点的末尾都尝试了,但仍然得到相同的错误:
stdClass Object ( [client_id] => 131XXXXXX [detail] => When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal. [registration_url] => https://developer.twitter.com/en/docs/projects/overview [title] => Client Forbidden [required_enrollment] => Standard Basic [reason] => client-not-enrolled [type] => https://api.twitter.com/2/problems/client-forbidden )
include ($_SERVER["DOCUMENT_ROOT"] . "/TwitterAPIExchange.php");
$settings = array(
'oauth_access_token' => "xxx",
'oauth_access_token_secret' => "xxx",
'consumer_key' => "xxx",
'consumer_secret' => "xxx"
);
//$url = "https://api.twitter.com/1.1/search/tweets.json";
$url = "https://api.twitter.com/2/tweets/search/recent";
$requestMethod = "GET";
// V1
//$getfield = '?q=bitcoin';
// V2
$getfield = '?query=bitcoin';
$twitter = new TwitterAPIExchange($settings);
$response = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
$tweets = json_decode($response);
print_r($tweets);
编辑:
看起来 V1 和 V2 可以共享相同的身份验证:https://developer.twitter.com/en/docs/twitter-api/tweets/search/migrate/standard-to-twitter-api-v2
OAuth 1.0a 用户上下文和 OAuth 2.0 Bearer Token 身份验证 v1.1 搜索/推文和 Twitter API v2 最近搜索端点支持 OAuth 1.0a 用户上下文和 OAuth 2.0 Bearer Token。 因此,如果您之前使用的是标准 v1.1 搜索端点,那么如果您迁移到 Twitter API v2 版本,则可以继续使用相同的身份验证方法。
【问题讨论】:
【参考方案1】:首先,您必须将您正在使用的应用程序添加到开发人员仪表板上的“项目”中。这一步是调用 v2 端点所必需的,请参阅:https://developer.twitter.com/en/docs/projects/overview
我从 twitter 社区论坛得到了这个答案,现在它可以与我上面问题中发布的代码一起正常工作。
【讨论】:
即使我可以访问 v2 端点,我也会收到此错误,请参阅此twittercommunity.com/t/…以上是关于如何使用 Twitter V2 API 拨打电话的主要内容,如果未能解决你的问题,请参考以下文章