如何使用 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 拨打电话的主要内容,如果未能解决你的问题,请参考以下文章

使用 openSystem API 从 Apple Watch 拨打电话?

OpenHarmony如何拨打电话

OpenHarmony如何拨打电话

OpenHarmony如何拨打电话

H5 唤起拨打电话功能

Twitter API 的问题可能是 Tweetinvi(禁止)