Facebook Messenger APIに接続するのに苦労しています。FacebookリクエストをFacebook Messenger APIに送信する
The remote server returned an error: (400) Bad Request.
私は、数日間、この時になって、複数の方法を試してみたが、でもなく、かなりの作業を行う少数VSパッケージを試してみました:サーバーが返す続けます。私は認証トークンを何回かチェックしましたが、他に何があるのか分かりません。
悪意のある要求を引き起こしていることが明らかなものはありますか? FacebookのAPIページからルートURLをコピーしました。以下のコードのトークンは削除されています。応答を読み込もうとすると、アプリケーションで例外がスローされます。 (にWebResponse FBresponse = FBrequest.GetResponse();)
private string FBSendMessage(string user, string message)
{
string result = null;
string FBroot = "https://graph.facebook.com/v2.6/me/messages?access_token=";
string token = "EAA...DZD";
string FBURI = FBroot + token;
string FBstring = "{ \"recipient\": { \"id\":\"" + user + "\" }, \"message\": { \"text\":\"" + message + "\" } }";
try
{
//using (WebClient FBclient = new WebClient())
//{
// result =
// FBclient.UploadString(FBURI, FBstring);
//}
HttpWebRequest FBrequest = (HttpWebRequest)WebRequest.Create(FBURI);
FBrequest.Credentials = CredentialCache.DefaultCredentials;
FBrequest.ProtocolVersion = HttpVersion.Version11;
FBrequest.Method = "POST";
FBrequest.ContentType = "application/json";
byte[] FBbytes = Encoding.UTF8.GetBytes(FBstring);
FBrequest.ContentLength = FBbytes.Length;
Stream FBstream = FBrequest.GetRequestStream();
FBstream.Write(FBbytes, 0, FBbytes.Length);
FBstream.Close();
WebResponse FBresponse = FBrequest.GetResponse();
Output((((HttpWebResponse)FBresponse).StatusDescription), Log.Error);
FBstream = FBresponse.GetResponseStream();
StreamReader FBreader = new StreamReader(FBstream);
result = FBreader.ReadToEnd();
FBreader.Close();
FBresponse.Close();
}
catch(Exception ex)
{
Output(ex.Message, Log.Error);
}
return result;
}
レスポンス本文に実際のAPIエラーメッセージがあるはずです。 – CBroe
@CBroeあります。私は昨夜、トラフィックを監視するためにFiddlerを使い始めましたが、それは私にエラーを送信していますが、何らかの理由で私のコードがエラーを読み込んでいないので、読み込む前に失敗しています。応答を読み込もうとすると失敗するので、間違って読み込もうとしています。 – Prdufresne
状況コードによってエラーが示された場合、要求本体が破棄されることがあります。 HTTPリクエストで使用しているパッケージがその点でオプションを提供しているかどうかを確認します。 – CBroe