我很难连接到Facebook Messenger API。服务器不断返回:
远程服务器返回错误:(400)错误请求。
我已经在这里呆了几天,尝试了多种方法,甚至尝试了一些不太有用的VS软件包。我已经多次检查了我的Auth Token,我不知道它可能是什么。
有什么明显的东西会导致错误的请求吗?我已经从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;
}
答案 0 :(得分:0)
我已经确定我的代码不是问题所在。问题是我发出的用户ID无效的请求。 Facebook在应用程序上下文中创建的用户ID与您的默认用户ID不同。在发送消息之前,我必须收到一条消息,以了解该情境化的ID。