• 締切済み

ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

みんなの回答

回答No.2

> header()(リダイレクト)でアクセスしています。  というのがどういうことか良くわかりませんが。  発言系のAPIならPOSTリクエストを送信するので、パラメータがちゃんとHTTPヘッダーに設定されている必要があります。URLにパラメータを続けるのはGETリクエストなので、エラーで弾かれるでしょう。  あと、段階的に状況を整理しましょう。 ●そもそもOAUTH認証が出来ているのか?  いきなり発言したりするのではなく、まずはGET系のAPI、例えばtimelineがちゃんと取得できるかとかから確認してみましょう。 ●OAUTH認証の注意点  ・signatureが正しく作成されているか  ・statusはあらかじめHTMLエンコーディングされている必要がありますが、HTMLエンコーディングの仕方によってはTwitter側のチェックで弾かれることがあるようです。  ・パラメータの順番  (APIによってはsignatureに含めないパラメータも存在しますが、それ以外のパラメータはOAUTHに直接関係するしないに関わらずキーのアルファベット順に並んでいる必要があるようです) ●オプション関係はその後からじっくりと確認しましょう

onesscripter
質問者

お礼

ご回答ありがとうございます。 おっしゃる通りにPOSTリクエストなのにheader(LOCATION)で アクセスしてしまうとGETになってしまいますね。 ご指摘ありがとうございます。 ご教示の通りtimelineを取得しようと http://api.twitter.com/1/statuses/home_timeline.xml にheaderにPOSTを挿入し、 simplexml_load_file(上記で生成したもの)でアクセスしたところ bool(false)と表示されてしまいました。 Oauthが間違っている場合間違っている旨のレスポンスが返ってくると WEBか書籍で見たのですが、ということはURLが間違っているのでしょうか? また、署名やOAUTH認証については絶対に正しいとは言えませんが リクエストトークンやアクセストークンが取得出来ている事から 特に問題ないのではないかと考えています。 しかしながら、ご教示の通り見直すべき箇所が 浮き彫りになってきましたのでもう一度調べなおして みようと思います。 ありがとうございました

  • luka3
  • ベストアンサー率72% (438/602)
回答No.1

実際にプログラムしている訳ではないので単なるアドバイスですが、、、 まずphpですよね? googleで「twitter oauth php」とかで検索すればいろいろとサンプルが見つかりますが、それはもう見てますよね。 で、in_reply_to_status_idですが、これは誰かの発言に対して返信を行うときにその発言のIDを指定します。 ・Twitterクライアント別 in_reply_to_status_idの扱い - H.Hiroのチラシの裏の裏 http://kugyu.info/?page=Twitter%A5%AF%A5%E9%A5%A4%A5%A2%A5%F3%A5%C8%CA%CC+in_reply_to_status_id%A4%CE%B0%B7%A4%A4

onesscripter
質問者

お礼

ご回答ありがとうございます。 実は「TwitterAPIプログラミング」 という本を参考にして書いたのですが WEBを参考にすると確かに返信の場合に 記述するよう書いてあります。 と、なるとこの項目は削除したほうが良いのかもしれません… ご紹介いただいたURLを参考にさせていただき、 もう少し、調べてみます。

関連するQ&A

専門家に質問してみよう