繁体   English   中英

通过hashtag示例API v1.1进行Twitter搜索

[英]Twitter search by hashtag example API v1.1

在过去,使用Twitter API版本1,我使用以下URL来获取所有推文的JSON提要,其中包含#baseball标签:

http://search.twitter.com/search.json?q=%23baseball&result_type=recent

如何使用API​​ 1.1版获得类似的结果? 我使用PHP作为我的服务器端代码,所以不确定我是否需要使用它进行身份验证等等?

示例代码非常有用。 谢谢。

如您所知,现在需要经过身份验证的请求,因此您可能需要先了解一些事项。 新的1.1搜索,如何使用hashtags和身份验证。

Twitter搜索1.1

新的Twitter搜索api文档可以在这里找到。 根据这些文档:

https://api.twitter.com/1.1/search/tweets.json是用于搜索的新资源URL。

Hashtag搜索

你有那个部分是正确的! %23解码为#字符。

认证

OAuth要复杂得多。 如果您刚刚使用了一个刚刚工作的库,那将会有所帮助。

这是一篇很多人发现的帖子 ,可以帮助您对1.1 API进行身份验证请求。 这包括一个单文件包含 ,可以根据您的需要提供请求。

此示例假设您正在使用上述库并设置密钥等。要提出您的请求:

// Your specific requirements
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$requestMethod = 'GET';
$getfield = '?q=#baseball&result_type=recent';

// Perform the request
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest();

对,就是那样。 除了您需要做的小设置(如我的帖子所解释),对于您的开发键,这是执行经过身份验证的请求所需的一切。

响应

响应以JSON的形式返回给您。 概述

API v1.1仅支持JSON。 我们一直在暗示这一点,首先在Streaming API上放弃XML支持,最近在trend API上放弃XML支持。 我们选择在整个平台上共享的JSON格式背后支持。

如果您只想测试,可以执行以下操作:

访问twitter dev控制台: https//dev.twitter.com/console

在身份验证中:OAuth 1,它将要求您从您的Twitter帐户授予权限。

请求URL放置GET

在网址: https//api.twitter.com/1.1/search/tweets.json? q =%23yourhashtag

发送后,在“请求”窗口中,复制“授权”值。

现在把它放在你的请求标题中。

去示例:

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "https://api.twitter.com/1.1/search/tweets.json?q=%23golang", nil)
    req.Header.Add("Authorization", `OAuth oauth_consumer_key=...`)

    resp, _ := client.Do(req)
    io.Copy(os.Stdout, resp.Body)
}

这是python中使用请求API使用仅应用程序身份验证的简单示例。 通过https://apps.twitter.com/app/new创建应用来获取密钥。

api_key = ...
api_secret = ...

# https://dev.twitter.com/oauth/application-only
# The base64 stuff described there is the normal Basic Auth dance.
import requests
r = requests.post('https://api.twitter.com/oauth2/token',
                  auth=(api_key, api_secret),
                  headers={'Content-Type':
                      'application/x-www-form-urlencoded;charset=UTF-8'},
                  data='grant_type=client_credentials')
assert r.json()['token_type'] == 'bearer'
bearer = r.json()['access_token']

url = 'https://api.twitter.com/1.1/search/tweets.json?q=%23yourhashtag'
r = requests.get(url, headers={'Authorization': 'Bearer ' + bearer})
print r.json()

暂无
暂无

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

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