承認これくしょん

my black histories

TwitterのApplication-only authenticationを試した

Application-only authentificationとは

詳細は公式ドキュメントを参照。
特定ユーザーの情報取得、ツイート検索といったAPIのみが使用できる。
ユーザー側のアプリ連携を要しないため、勝手にツイートしたりブロックしたりという危険がなくて良い。

トークンの取得

ここを参考にcURLでやった。

curl -u (API key):(API secret) -d grant_type=client_credentials https://api.twitter.com/oauth2/token

公式ドキュメントではBase64化してコロンでつなげてますが、それがBasic認証とのこと。
するとトークンが返ってくるので

curl -H "Authorization: Bearer (token)" https://api.twitter.com/1.1/search/tweets.json?q=Java

といった感じで使える。

PHPで使う

ツイート検索の結果をJSONPで返してみる。PHPcURLを使った。
ディレクトリ内にCA証明書が必要。

<?php
header('Content-type: text/javascript');
$ch = curl_init();
curl_setopt($ch, CURLOPT_CAINFO, getcwd().'/cacert.pem');
curl_setopt($ch, CURLOPT_URL, 'https://api.twitter.com/1.1/search/tweets.json?q='.urlencode($_GET['q']));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer (token)'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$json = curl_exec($ch);
curl_close($ch);
echo $_GET['callback'].'('.$json.')';
?>