※ ChatGPTを利用し、要約された質問です(原文:TwitterAPIをつかったクライアントアプリを作ろうとしています。)
TwitterAPIを使ったクライアントアプリ作成のエラー
このQ&Aのポイント
TwitterAPIを使ったクライアントアプリ作成中に問題が発生しています。
投稿は正常に処理されるが、ツイートの取得でエラーが発生しています。
ブラウザでURLを入力すると正常に表示されるが、プログラムから呼び出すとエラーになります。
TwitterAPIをつかったクライアントアプリを作ろうとしています。
TwitterAPIをつかったクライアントアプリを作ろうとしています。
ここのサイトを参考に作成中です。
http://www.ipentec.com/document/document.aspx?page=csharp-use-twitter-api-oauth-winform
投稿(stuses/update)は処理できるのですが、ツイートの取得(statuses/show)でエラーになってしまいます。
private void bttnEntryPinCode_Click(object sender, EventArgs e)
{
OAuth.oAuthTwitter o = new OAuth.oAuthTwitter();
o.ConsumerKey = Properties.Settings.Default.ConsumerKey;
o.ConsumerSecret = Properties.Settings.Default.ConsumerSecret;
o.Token = Properties.Settings.Default.AccessToken;
o.TokenSecret = Properties.Settings.Default.AccessTokenSecret;
string postURL = "";
string postData = "";
postURL = API + "statuses/update.xml";
postData = "status=" +"ただいまの時間" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString();
Console.WriteLine(o.oAuthWebRequest(OAuth.oAuthTwitter.Method.POST, postURL, postData));
//↑正常に処理
postURL = API + "statuses/show.xml";
postData = "id=13322284000";
Console.WriteLine(o.oAuthWebRequest(OAuth.oAuthTwitter.Method.GET, postURL, postData));
//404エラー
}
しかし、エラーになるURLをブラウザから直接入力すると正常に表示されます。
http://api.twitter.com/1/statuses/show.xml?id=13322284000
これ以外にも users/show.xml でも同様なエラーが出てしまいます。
なぜURLをブラウザにいれるとOKで、プログラムから呼ぶとエラーになるのか、
その原因がずっとわからずにいます。
原因をご存じでしたら、教えてください。
この部分で完全に止まってしまっています。
お礼
コチラも何でも確認しましたが問題有りません。 http://api.twitter.com/1/statuses/show.xml?id=13322284000 と実際に発行されるURLの違いとしては、oAuthでの認証のために トークンなどの情報が付加されています。 トークンだけにここに書けませんが、他の命令では正常に動作しています。 いろいろ試してoAuth経由で処理した場合、レスポンスの内容が異なっていることがあります。 通常のGET処理した場合とoAuth経由でGet処理した場合でツイッター側の処理が異なるのが原因ではないかと考えています。 ただそのような“レスポンスが異なる”と言う情報が見つからず、何かを間違っているのか?と悩んでいるところです。
補足
原因が判明しました。 TiwtterAPIの処理のなかでGETと投げるときに、引用の部分をアルファベット順に並び替える必要がありました。 POSTではその影響を受けなかったのですが、GETではOAuth関連項目が増えるので問題が出ていたようです。 お騒がせしました。