数年前に導入したphp4で作成したtwitterクライアントが動かなくなっていた。
すでにtwitter開発者アカウント情報も不明になっていたため、新規にアプリを登録しなおし、スクリプトの修正も行った。
今後のためにメモとして残しておく。
●twitterクライアント登録
https://dev.twitter.com/
で開発者アカウントの登録を行う。登録後、クライアントの登録などができるようになる。
クライアントを登録するには、ログイン後、「Create a new application」ボタンから行う。
「Name」にはクライアント名、
「Description」にはクライアントの説明、
「Website」にはクライアントを設置するサイトのURLを書く。
「Callback URL」は、BOTのように特定アカウントからの投稿のみのような場合は入力不要だが、不特定多数の利用者がOauth経由でログインして、このクライアントを利用するような場合は入力が必要。
入力するURLは認証成功後に遷移するもの。なお、この内容はクライアントが指定するoauth_callbackの値で上書きされるので、適当なものでも構わない。ただし、設定していない状態で、クライアントからoauth_callbackを利用しようとすると、
Desktop applications only support the oauth_callback value 'oob'
のようなエラーが出るので注意が必要です。
あとは、規約に同意してCreateボタンを押せば作成完了です。
●twitterクライアントの設定
クライアント登録後、My applicationsにアクセスすると登録したクライアントの一覧が出る。一覧から登録したクライアントを探し、クリックして設定画面に移動する。
Settingsタブをクリックして、
Application TypeのAccessを「Read and Write」に変更してUpdateボタンを押す。
この設定をしないとクライアントからTwitterに投稿ができないので注意が必要です。
●スクリプトの修正
スクリプトをチェックしているとaccessトークンを取得する際に、
Required oauth_verifier parameter not provided
のようなエラーを出していることに気が付きました。
googleで調べたところ、accessトークンを取得する際に、requestトークンを取得したときのコールバックURLに含まれるoauth_verifierの値を渡すようにするとOKということがわかりました。
設定後、無事動くようになりました。(^^)
※
ちなみにですが、php5以降の環境を利用できるのなら、
http://www.sdn-project.net/labo/oauth.html
で紹介されているOAuthライブラリ”twitteroauth“を利用するのが簡単です。