2009-09-03 4 views
1

私のサイトは、イベントが発生するたびにphp関数を使用して更新をつぶやきます。今、私は古典的なログイン技術を使用していますので、関連したTwitterアカウントのユーザー名とパスワードがちょうどにハードコードされている機能は次のようになります。クラシックログインをOAuthに置き換えて単一のユーザ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にユーザーを送信し、適切なトークンを使用して元のサイトに戻します。私のアプリケーションでは、1つのツイッターアカウントしかありませんが、アクションを開始するユーザー(ツイートを開始していることを知らない、気にしない人)に属しません。

どうすればいいですか?私が考えることができる最良の選択肢は、アクセストークンを要求し、そのトークンをsendTweet関数にハードコードするためのワンタイム使用スクリプトを構築することです。そのような単純なアプリケーションのための過剰な残虐行為のように思われ、Twitterがアクセストークンを期限切れにした場合、潜在的な問題を引き起こします。ドキュメントは彼らがおそらく決してするつもりはないと言いますが、そのアプリケーションはそれを正常に処理するように設計されていなければなりません。

誰もこのようなプロジェクトでの経験はありますか?それを行うためのよりシンプルで優雅な方法がありますか?

答えて

0

管理パネルにOAuthスクリプトを書き込む必要があります(あなたが持っていると仮定します)。アクセスキーの有効期限が切れている場合は、管理者から再認証することができます。

関連する問題