当前位置: 首页 > 知识库问答 >
问题:

如何使用Twitter V2 API拨打电话

周博达
2023-03-14

我正在使用下面的代码搜索带有查询参数的Tweets。这适用于Twitter V1 API,但不适用于V2,在广泛阅读了他们的API留档后,我感到困惑。

我的第一个问题是,V1和V2是否共享相同的身份验证?i、 e.假设我的endpointurl是正确的,我可以用这个代码调用V2吗?这导致了第二个问题,如果我可以用与V1相同的身份调用V2,那么正确的endpoint是什么?到目前为止,最显著的区别是查询参数,V1为“q”,V2为“query”。然后很明显是。json是不需要的,但我在V2endpoint的末尾尝试了这两种方法,但仍然得到了相同的错误:

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承载令牌身份验证v1。1搜索/推文和Twitter API v2最新搜索endpoint同时支持OAuth 1.0a用户上下文和OAuth 2.0承载令牌。因此,如果您以前使用的是标准v1。1搜索endpoint如果迁移到Twitter API v2版本,则可以继续使用相同的身份验证方法。

共有1个答案

何兴学
2023-03-14

首先,你必须将你正在使用的应用程序添加到开发者仪表板上的“项目”中。此步骤是调用v2endpoint所必需的,请参见:https://developer.twitter.com/en/docs/projects/overview

我从twitter社区论坛得到了这个答案,现在它与我上面问题中发布的代码配合得很好。

 类似资料:
  • 我在这里阅读了Twilio电话教程:https://www.fullstackpython.com/blog/make-phone-calls-python.html 与Twilio教程不同,Twilio教程确实会叫我的手机,但它只播放MP3或人工智能语音。我希望能够进行对话。有没有办法用Twilio API连接我电脑的麦克风并与自己的手机通话?我一直在网上搜索,却找不到办法。请帮忙。

  • 拨打电话     拨打电话给 Skype 联系人。开始通话前,需先让支援PSP™版 Skype 的音频输入设备连接PSP™主机。 从联系人名单选择拨打对象 1. 进入 Skype 的选单画面后选择(联系人)。 2. 从联系人名单中选择电话的拨打对象。 可拨打电话给登入状态为(在线)等可通话状态的联系人。 开始呼叫后,会显示对方的名字或 Skype 账号。对方回复后即可开始通话。 提示 透过 Sky

  • 问题内容: 当我用make或new调用创建新的slice或struct时: Go通过内存分配系统调用分配多少内存?它是否预分配了内存,以便后续调用不会触发新的系统调用? 我问这个问题是因为我需要在代码中频繁分配内存。我不确定是否需要自己实现一个内存分配器,还是可以依靠Go来完成肮脏的工作。如果Go确实预分配了内存,我可以自定义要分配的块大小吗? 我在Go中编写了一些实验代码,并在strace下运行

  • 我试着用我的Flutter应用程序打电话。用以下代码: 我在GitHub Flatter repo上找到了这个函数:https://github.com/flutter/flutter/issues/4856 但是这对我不起作用。这个功能还在Flutter中吗?在哪个包中?或者有更好的选择从我的应用程序打电话吗?

  • stack_trace=java.lang.unsatistifiedLinkError:dalvik.system.pathClassLoader[dexpathlist[[zip文件“/data/app/com.iw.infowave-1/base.apk”],nativelibrarydirectories=[/vendor/lib64,/system/lib64]]]在java.lang.

  • 问题内容: 我正在尝试拨打的电话不是使用特定号码,而是使用在变量中被调用的号码,或者至少告诉它在您的电话中提取该号码。这个在变量中被调用的数字是我使用解析器或从网站sql检索到的数字。我做了一个按钮,试图用一个函数调用存储在变量中的电话号码,但无济于事。一切都会帮助谢谢! 问题答案: 试一试: 假设电话号码在。 的返回Optional,因此使用可以确保它是(而不是)返回的。 对于Swift 3: