http post facebook图形api处理

http post facebook图形api处理,facebook,http,post,oauth,processing,Facebook,Http,Post,Oauth,Processing,我想通过一个处理小程序在facebook用户的墙上发布一些东西。首先,我通过Oauth身份验证为具有app_id和user_id的用户获取access_令牌。 我用过这个,谢谢Jorge 现在我想在用户的墙上发布一篇帖子。 我向您发出http post请求 使用这些参数“访问令牌”、“XXX”、“消息”、“检查…”。。。处理!" 请求的响应是 executing request: POST https://graph.facebook.com/USER_ID/feed HTTP/1.1 ----

我想通过一个处理小程序在facebook用户的墙上发布一些东西。首先,我通过Oauth身份验证为具有app_id和user_id的用户获取access_令牌。 我用过这个,谢谢Jorge

现在我想在用户的墙上发布一篇帖子。 我向您发出http post请求 使用这些参数“访问令牌”、“XXX”、“消息”、“检查…”。。。处理!"

请求的响应是

executing request: POST https://graph.facebook.com/USER_ID/feed HTTP/1.1
----------------------------------------
HTTP/1.1 403 Forbidden
----------------------------------------
{"error":{"type":"OAuthException","message":"(#200) This API call requires a valid app_id."}}
这是什么意思? 我输入了有效的应用程序\u id…否则我没有获得访问\u令牌

问候,, 彼得

import org.apache.http.HttpEntity;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.DefaultHttpClient;
无效设置()
{
字符串url=”https://graph.facebook.com/USER_ID/feed";
尝试
{
DefaultHttpClient httpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(url);
HttpParams postParams=新的BasicHttpParams();
postParams.setParameter(“访问令牌”,“XXX”);
setParameter(“消息”,“检查…处理!”);
httpPost.setParams(后参数);
println(“正在执行请求:+httpPost.getRequestLine());
HttpResponse response=httpClient.execute(httpPost);
HttpEntity=response.getEntity();
println(“--------------------------------------------------------”;
println(response.getStatusLine());
println(“--------------------------------------------------------”;
如果(entity!=null)entity.writeTo(System.out);
如果(entity!=null)entity.consumeContent();
//当不再需要HttpClient实例时,
//关闭连接管理器以确保
//立即释放所有系统资源
httpClient.getConnectionManager().shutdown();
}catch(异常e){e.printStackTrace();}
退出();
}

您需要在请求的URL中包含用户ID,而不是字面上的“用户ID”

因此,您可以:

String url = "https://graph.facebook.com/"+user_id+"/feed";
或者,使用快捷方式,实际上:

String url = "https://graph.facebook.com/me/feed";

当Facebook在“我”的leiu中查看访问令牌中的用户ID时,您需要在请求的URL中包含用户ID,而不是字面上的“用户ID”

因此,您可以:

String url = "https://graph.facebook.com/"+user_id+"/feed";
或者,使用快捷方式,实际上:

String url = "https://graph.facebook.com/me/feed";

Facebook在“我”的leiu中查看访问令牌中的用户ID的位置

您获得了发布流的权限吗?如果您不需要访问令牌!我做了这个请求:http://www.Facebook.com/login.php?api\u key=YOUR\u api\u key&connect\u display=popup&v=1.0&next=://www.Facebook.com/connect/login\u failure.html&fbconnect=true&return\u session=true&req\u perms=read\u stream、publish\u stream、offline\u access,但http post请求不起作用。很抱歉http:///之间的空格,否则链接将无法正确显示。我遇到了类似的问题,问题是HttpParams。解决方案是使用NameValuePair。就像这里:您获得了吗d
发布流
权限?如果您不需要
访问令牌
!我做了这个请求:http://www.facebook.com/login.php?api\u key=YOUR\u api\u key&connect\u display=popup&v=1.0&next=://www.facebook.com/connect/login\u failure.html&fbconnect=true&return\u session=true&req\u perms=read\u流,发布流,离线访问,但http post请求不起作用。很抱歉,http://之间存在空格,否则链接将无法正确显示。我遇到了类似的问题,问题出在HttpParams上。解决方案是使用NameValuePair。如下所示: