我打算从我的公司页面获取facebook-insights 阅读FB文档我必须创建一个FB-APP并使用它“进行身份验证并获得访问令牌,然后尝试一些调用来访问您帐户的广告系列对象。” (https://developers.facebook.com/docs/marketing-api/overview#gettingstarted)
第一部分结束,我的应用程序要求特权使扩展权限执行“ads_read”并生成访问令牌。
但在此之后,当我提出一些广告帐户,广告系列等广告时,我收到消息:“远程服务器返回错误:(400)错误请求。”
这是我的代码:
Default.aspx的:
protected void Page_Load(object sender, EventArgs e)
{
string facebook__client_id = "331449370396212";
string urlBase = "https://tecnologia.chleba.net:94";
string url = "https://graph.facebook.com/oauth/authorize?client_id=" + facebook__client_id + "&redirect_uri=" + urlBase + "/FacebookCallBack.aspx&scope=ads_read";
Response.Redirect(url);
}
FacebookCallBack.aspx:
protected void Page_Load(object sender, EventArgs e)
{
string facebook__client_id = "331449370396212";
string facebook__client_secret = "";
string urlBase = "";
if (Request["code"] != null)
{
string url = "https://graph.facebook.com/oauth/access_token?client_id=" + facebook__client_id + "&redirect_uri=" + urlBase + "/FacebookCallBack.aspx&client_secret=" + facebook__client_secret + "&code=" + Request["code"].ToString();
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.CreateDefault(new Uri(url));
WebResponse res = (WebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
url = sr.ReadToEnd();
res.Close();
string[] resposta = url.Split("&".ToCharArray());
string token = resposta.GetValue(0).ToString().Trim().Replace("access_token=", string.Empty);
// PROBLEM HERE
string aUrl = "https://graph.facebook.com/act_418011654925463?access_token="+ token;
try
{
req = (HttpWebRequest)HttpWebRequest.CreateDefault(new Uri(aUrl));
res = (WebResponse)req.GetResponse();
sr = new StreamReader(res.GetResponseStream());
string resultado = sr.ReadToEnd();
res.Close();
Response.Write(resultado);
}
catch (Exception ex)
{
Response.Write("erro: "+ ex.Message + " - " + ex.InnerException);
}
Response.End();
}
答案 0 :(得分:2)
我认为您的问题是由于您的“ redirect_uri ”不匹配造成的。我在尝试获取访问令牌时遇到了类似的问题。
如果你改变了
string urlBase
到
string urlBase = "https://tecnologia.chleba.net:94"
你应该停止接收错误400。
希望这适合你。