phpで twitter api について。


http://www.sdn-project.net/labo/oauth.html

こちらのサイトに沿ってプログラミングしましたが、うまく動きませんでした。

サンプルコード2つとも、$req をvar_dumpすると、NULLが入っていました。

ツイッターのアカウント側で、アプリを許可する、となっていることは確認しています。


何かが間違えているのだと思いますが、詰まってしまいました・・・。

アドバイス頂けると助かります。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/11/19 18:24:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tama213 No.2

回答回数486ベストアンサー獲得回数30

ポイント100pt

http://sakef.jp/blog/2010/09/twitteroauth01/

を参考に

https://twitter.com/statuses/update.xml

は、

http://api.twitter.com/1/statuses/update.xml

が正しいです。

公式のAPIレファレンスを見てください。

http://dev.twitter.com/doc/post/statuses/update

このあたりは仕様が変わったのだと思います。

id:onigirin

どうもありがとうございます。

ズバリ投稿することができました。

まさにそれが原因のようでした。

今日一日いろいろいじってたので、助かりました。

どうもありがとうございました!

2010/11/19 18:22:40

その他の回答1件)

id:Galapagos No.1

回答回数963ベストアンサー獲得回数89

ポイント10pt

twitteroauth ライブラリですが、0.2.0-beta3.zipをダウンロードして使いましたか?

ご確認ください。

id:onigirin

どうもありがとうございます。

そのファイルを使い、twitteroauth.php OAuth.php の二つを入れています。

再度入れ直してみましたが、同じでした。

2010/11/19 16:17:29
id:tama213 No.2

回答回数486ベストアンサー獲得回数30ここでベストアンサー

ポイント100pt

http://sakef.jp/blog/2010/09/twitteroauth01/

を参考に

https://twitter.com/statuses/update.xml

は、

http://api.twitter.com/1/statuses/update.xml

が正しいです。

公式のAPIレファレンスを見てください。

http://dev.twitter.com/doc/post/statuses/update

このあたりは仕様が変わったのだと思います。

id:onigirin

どうもありがとうございます。

ズバリ投稿することができました。

まさにそれが原因のようでした。

今日一日いろいろいじってたので、助かりました。

どうもありがとうございました!

2010/11/19 18:22:40
  • id:windofjuly
    うぃんど 2010/11/19 01:25:10
    試してないからコメントにしておきますけど、下記4箇所に「前もって取得した値」を適正に書きましたか?
     
    consumer_key の文字列が aaaa
    consumer_secret の文字列が bbbb
    access_token の文字列が cccc
    access_token_secret の文字列が dddd
     
    // Consumer keyの値
    $consumer_key = "aaaa";
    // Consumer secretの値
    $consumer_secret = "bbbb";
    // Access Tokenの値
    $access_token = "cccc";
    // Access Token Secretの値
    $access_token_secret = "dddd";
  • id:onigirin
    どうもありがとうございます。

    何度か確認してみましたが、ツイッターに表示されている文字列を、きちんと入力できていました。
    エラーが出てないので、ここはパスしているのかな?と、なんとなく思ってます。
  • id:onigirin
    ■追記

    var_dump したら、 NULL じゃなく、 bool(false)でした。

    認証失敗してるっぽいとしたら、何が問題なんだろう・・・。
  • id:rouge_2008
    どのように上手く動作しないのでしょう?
    POSTのサンプルコードでXML関連のメッセージが表示されるのでしたら、次の行をコメントアウトしてみてください。
    //header("Content-Type: application/xml");

    上記で解決しない場合は、もう一度"Access Token"と"Access Token Secret"を発行し直してテストしてみてはいかがでしょうか?
    コードもコピー&ペーストし直してみてください。
    こちらではPOSTする方はそのままでも動作しましたし、タイムラインの取得の方は一箇所修正するだけでした。(※エラー表示と呟きのステータスIDが表示されない問題はありますが、修正なしでも一応動作はします。)

    $status_id = $reply->id; // 呟きのステータスID

    上記を次のように修正すると呟きのステータスIDも表示されます。

    $status_id = $status->id; // 呟きのステータスID


    ※「var_dump($req);」で「bool(false)」だけが表示されるのですか?
    POSTとタイムラインの取得、どちらのサンプルコードでしょう?
  • id:onigirin
    どうもありがとうございます。

    トークンの再発行と、上記回答を頂いたapiURL変更を試したところ、無事動きました。


    ちなみに、POSTもタイムラインも、 bool(false) のみ表示されていました・・・。

    apiのURLとトークンだったのかもしれません。
    どうもありがとうございました!
  • id:rouge_2008
    すみません。
    一部訂正して再度コメントします。

    > ちなみに、POSTもタイムラインも、 bool(false) のみ表示されていました・・・。


    SSLが無効になっているlibcurlを使用しているのが原因ではないかと思います。

    phpinfo()を実行して、「cURL Information」を確認してみてください。(※「OpneSSL」または「GnuTLS」等の記述があれば、httpsでも接続できます。)
  • id:onigirin
    どうもありがとうございます。

    今のところ、https での接続は利用していないです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません