1. Qiita
  2. 投稿
  3. PHP

TwitterOAuthの正しい使い方

  • 105
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

※この記事は古いため、2014年8月以降のTwitterOAuthでは動作しません。
新しい使い方はこちらを参照 → http://qiita.com/tsunet111/items/9309801cd3e3bcf6e32a

使い方 / ラッパー

PHP TwitterOAuth 1.1」でググると、

$TwitterOAuth->OAuthRequest("http://api.twitter.com/1.1/statuses/update.json","POST",array("status"=>$tweet));

みたいなコードばっかり引っかかってぅぇぇとなるんですが。
誰かが最初に適当に書いたのをみんながコピペしたという過去が透けて見えるようだ。
まあ、動けばそれでいいというPHPの精神には則っているかもしれませんね。

<?php

    // TwitterOAuth
    require_once('path/to/twitteroauth.php');
    $TwitterOAuth = new TwitterOAuth('コンシューマキー', 'コンシューマシークレット', 'アクセストークン', 'アクセスシークレット');

    // 1.1向け。2013/06/12以降の版であれば不要
    $TwitterOAuth->host = 'https://api.twitter.com/1.1/';

    // 認証が有効か+ユーザ情報取得
    $user = $TwitterOAuth->get('account/verify_credentials');

    // つぶやく
    $status = $TwitterOAuth->post('statuses/update', ['status' =>'ツイート内容']);

    // リツイート
    $retweet = $TwitterOAuth->post('statuses/retweet/ツイートID');

    // フォロアーを取得
    $followers = $TwitterOAuth->get('followers/list');

    // フォローしてる人を取得
    $follows = $TwitterOAuth->get('friends/list');

    // ユーザ名でユーザ情報を取得
    $userinfo = $TwitterOAuth->get('users/show', ['screen_name'=> '@以降の表示名']);

    // ユーザIDでフォローする
    $follow = $TwitterOAuth->post('friendships/create', ['user_id'=> 'ユーザID']);

APIは他にもたくさんありますが、呼び出し方はどれも同じです。
oAuthRequest()はJSONデコードもされていないし、このメソッドを直接呼ぶ意義は、今のところ全くありません。

さらに、TwitterOAuthは2013/06/12にTwitter API 1.1に対応したので、それ以降のバージョンであれば$connection->hostを書き換える必要すらありません。

ちなみにTwitterOAuth、テストコードがついてくるのですが、これがけっこう間違いがあったりして困りものです。

というか、どうして呼び出し側でget/post判断やURLを渡させるのですかね。
適当にinterface作ってそっちで吸収してくれよと非常に思う。