私のサイトでは、php関数を使用して、イベントが発生するたびに更新をツイートします。現在、従来のログイン手法を使用しているため、関連付けられたTwitterアカウントのユーザー名とパスワードがハードコードされています。関数は次のようになります。
function sendTweet($msg)
{
$username = 'username';
$password = 'password';
$url = 'http://twitter.com/statuses/update.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$msg");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
}
OAuthを使用するように書き直したいと思います。これは主に、従来のログインが非推奨になったときの問題を回避するためですが、ツイートのたびに「APIから」ではなくアプリケーションの名前を使用するようにするためでもあります。
私が見つけることができるすべての例は、認証システムを作成することを含みます。認証システムは、ユーザーをtwitter.comに送信して認証要求を承認し、適切なトークンを使用して元のサイトに送り返します。私のアプリケーションでは、Twitterアカウントは1つしかなく、アクションを開始したユーザー(ツイートを開始していることさえ知らない、または気にしない可能性があります)には属していません。
では、どうすればこれを行うことができますか?私が考えることができる最善のオプションは、アクセストークンを要求し、そのトークンをsendTweet関数にハードコーディングできる1回限りのスクリプトを作成することです。これは、このような単純なアプリケーションにとってはやり過ぎのように思われ、Twitterがアクセストークンを期限切れにした場合、将来的に問題が発生する可能性があります。ドキュメントによると、おそらくそうなることはないでしょうが、アプリケーションは、そうする場合はそれを適切に処理するように設計する必要があります。
このようなプロジェクトの経験はありますか?それを行うためのより簡単でより優雅な方法はありますか?