繁体   English   中英

使用PHP的Twitter REST API v1.1简单请求示例

[英]Twitter REST API v1.1 simple request example with PHP

如果我的应用程序具有Twitter使用者密钥和使用者秘密密钥,如何在不使用任何外部库的情况下使用PHP请求 GET请求?

任何新手都会喜欢Twitter REST API的好例子。

仅具有使用者密钥和使用者秘密,您无法发出成功的GET请求。 您还需要一个Oauth令牌(访问令牌)和一个Oauth令牌秘密(访问令牌)。

要获取访问令牌访问令牌密钥,您需要进行身份验证,或者,如果该应用程序仅供个人使用,请通过转到该应用程序页面上的应用程序详细信息来创建访问令牌。

我将继续解释如何以困难的方式获取令牌(其他人也可以使用您的Twitter应用程序)。 您需要通过Twitter的API进行身份验证。 供参考,请参阅Twitter的官方如何登录文章。 我试图根据本文提供一个更容易理解的解释。

如果您已经拥有oauth令牌和oauth令牌密钥,则可以直接跳至下面的如何发出GET请求


如何认证

*在继续之前,我想声明您需要激活cURL才能正确发送任何请求。

第1步 -构建标头并将其发送到Twitter以请求身份验证令牌(它基本上授权您进行身份验证)

这些是您需要的标题:

oauth_consumer_key = YOUR_CONSUMER_SECRET

oauth_nonce = RANDOM_GENERATED_32_CHAR_STRING

oauth_timestamp = NOW()

oauth_callback = YOUR_CALLBACK

oauth_signature_method = HMAC-SHA1

oauth_version = 1.0

oauth_signature =基于上述所有标头生成的签名。 (如何构建签名本身是一个相当大的主题,因此,我很推荐阅读本文 。)

在拥有所有标题之后,将它们按字母顺序排序它们按键和值对连接 (例如,consumer_key =“ YOU_CONSUMER_KEY”),然后将其附加到字符串“ OAuth”。

您最终会遇到类似:

OAuth oauth_consumer_key =“ YOUR_CONSUMER_KEY”,oauth_nonce =“ YOUR_NONCE”,oauth_signature =“ YOUR_SIGNATURE”,oauth_signature_method =“ HMAC-SHA1”,oauth_timestamp =“ 1377125526”,oauth_token =“ 84832050-OHhyESU4wM2YG

这是您的标头值。

使用cUrl通过POST通过POST发送带有此值的' Authorization '标头到以下URL:https:// + api.twitter.com/oauth/request_token(*取出'+')并将响应存储在var中。

如果一切顺利,则应使用包含oauth_token的字符串填充存储的var。 *请注意,这不是您访问令牌-只是用于认证的令牌。

现在您有了oauth_token值,您可以重定向到https:// + api.twitter.com/oauth/authenticate?oauth_token=THE_RECEIVED_OAUTH_TOKEN_VALUE

此时,系统会提示您登录Twitter,并准备移至

第2步-回调

在上一步中使用Twitter登录后,您将重定向到http:// + OWN_CALLBACK_URL?/ oauth_token = SOME_VALUE&oauth_verifier = SOME_VALUE

* 同样,这些不是您的最终访问令牌。 您只需要使用它们来创建新的标题并将它们发送回Twitter。

步骤3-交换令牌

因此,将这两个标记附加到已在STEP 1中创建的标头列表中,基于所有标头 重建签名并使用cURL通过POST通过发送的新标头值发送另一个Authorization标头。

如果一切正常,则此cURL的响应应该是另一个包含oauth_token和oauth_token_secret的字符串。 *这些是您的真实访问令牌和访问令牌密钥。

一旦有了真正的oauth_token(我称其为access_token)和oauth_token_secret,就可以将它们存储在数据库中,SESSION中或任何需要的地方。 从现在开始,每个GET请求都将需要它们。



如何发出GET请求

*在继续之前,我想声明您需要激活cURL才能正确发送任何请求。

您需要知道要向其发出请求的终结点URL。 (例如,如果您想获取所有喜欢的推文,则需要以下网址:https +://api.twitter.com/1.1/favorites/list.json(删除“ +”)

创建标题

您将需要创建标头集(请参见如何验证标头中的步骤1, 了解如何创建标头)并将oauth令牌附加到标头集。

* 注意创建签名时,您将需要具有oauth令牌密钥+默认的ouath消费者密钥以对基本字符串进行签名。 有关更多信息,请参见https +://dev.twitter.com/docs/auth/creating-signature(取出“ +”)有关如何构建签名的信息。

* 注2:在构建签名时,您还需要具有所有额外的查询参数(无论端点URL中list.json之后是什么)。


通过GET http方法将请求发送到带有使用cURL创建的“ Authorization”标头的端点 url,并将结果存储在本地var中。

var_dump该var并查看其中包含的好东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM