以前は、Twitter APIバージョン1を使用して、次のURLを使用して、ハッシュタグ「baseball」を持つすべてのツイートのJSONフィードを取得しました。
http://search.Twitter.com/search.json?q=%23baseball&result_type=recent
APIバージョン1.1を使用してどのように同様の結果を達成しますか?私はサーバーサイドコードとしてPHPを使用しているので、認証などに使用する必要があるかどうかわかりませんか?
サンプルコードは非常に役立ちます。ありがとう。
ご存知のように、認証されたリクエストが必要になったため、最初に確認する必要のあることがいくつかあります。新しい1.1検索、ハッシュタグの使用方法、および認証。
1.1のTwitter検索
新しいTwitter検索APIドキュメントは here にあります。これらのドキュメントによると:
https://api.Twitter.com/1.1/search/tweets.json
は、検索に使用する新しいリソースURLです。
ハッシュタグ検索
あなたはその部分を正しく持っています! %23
は#
文字にデコードします。
認証
OAuthはもっと複雑です。動作するライブラリを使用した場合に役立ちます。
投稿 多くの人が1.1 APIに対して認証されたリクエストを行うのに役立つことがわかりました。これには、必要な要求を作成するための1ファイルインクルード library が含まれます。
例
この例では、上記のライブラリを使用しており、キーなどを設定していることを前提としています。リクエストを行うには:
// 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のみをサポートします。私たちはこのことを少し前から示唆してきました。最初にストリーミングAPIでXMLサポートを廃止し、最近ではトレンドAPIで廃止しました。プラットフォーム全体で共有されるJSON形式の背後にサポートをスローすることにしました。
テストしたいだけなら、次のことができます:
Twitter開発コンソールにアクセスします。 https://dev.Twitter.com/console
Authentication put:OAuth1。これにより、Twitterアカウントから許可を与えるように求められます。
GET URL put GET
URL: https://api.Twitter.com/1.1/search/tweets.json?q=%23yourhashtag
送信後、リクエストウィンドウで、認証値をコピーします。
それをリクエストヘッダーに入れます。
Goの例:
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()