从服务器而不是客户端应用程序发布在Facebook墙上

问题描述:

我一直在研究通过fConnect连接到Facebook的iphone应用程序(通过客户端 - 服务器通信)。 Facebook的身份验证和其他通信正在iphone应用程序中处理,他们都工作正常。从服务器而不是客户端应用程序发布在Facebook墙上

现在,由于一些优化问题,我们希望从服务器端而不是客户端处理应用程序的fb墙后功能。为了实现这个任务,我们正在做的是将所有数据(包括fb访问令牌)发送到服务器端,并通过图形api向Facebook发送http post请求。在响应其发送我们一个错误:

{"error":{"message":"Invalid token: \"610446057\". An ID has already been specified.","type":"OAuthException","code":2500}}

HTTP请求的示例代码粘贴下面:

HttpClient client = new HttpClient(); 
client.getParams().setParameter("http.useragent", "Test Client"); 

PostMethod method = new PostMethod("https://graph.facebook.com/610446057?access_token=MY_VALID_TOKEN_HERE"); 
method.addParameter("id", "610446057"); 
method.addParameter("name", "Zunair Minhas"); 
method.addParameter("picture", "http://profile.ak.fbcdn.net/hprofile-ak-ash2/276791_19292868552_1958181823_s.jpg"); 
method.addParameter("link", "http://www.google.com.pk"); 
method.addParameter("company_overview", "FB Wall post without fb integration. It is a simple Http Post request."); 
client.executeMethod(method); 

def reader = method.getResponseBodyAsString(); 
String data = reader.readLines().join() 
method.releaseConnection(); 

被写入该服务器的Grails 2.0.1。

我按照这里提供的FB后样品:http://developers.facebook.com/docs/reference/api/

能否请您指导我做错了吗?

谢谢。

Zunair Minhas

+1

不要写你的访问令牌的SO问题!如果任何人都可以使用它! – thermz 2012-03-07 12:30:47

+0

为什么你在URL中使用标记而不是:method.addParameter(“access_token”,“MY_VALID_TOKEN”); ? – thermz 2012-03-07 12:35:49

+0

我也尝试过这种方法,但效果不好。我收到了早些时候收到的同样答复。 – 2012-03-07 14:00:47

所有你需要做的就是删除行:

method.addParameter("id", "610446057"); 

你逝去的是利用图表URL https://graph.facebook.com/610446057


张贴到墙上只是做

https://graph.facebook.com/me/feed?access_token=<xxx> 

访问令牌是用户给你写在墙上的令牌。当你这样做时,它会解决你发送消息的人,并将所有的墙壁作为被授权的应用程序发布。

+0

我没有看到你的答案,堆栈溢出刷新错误再次罢工:-) – thermz 2012-03-07 12:39:57

+0

我这样做是因为它在这里的例子中提到[链接](http://developers.facebook.com/docs/reference/api/ )。但是当我删除这条线时,我得到这个回应: '{“error”:{“message”:“(#100)只能在有效的测试用户上为你的应用调用此方法”,“type”:“OAuthException” ,“code”:100}}' 还有更多建议吗? – 2012-03-07 14:02:38

+0

不幸的是,这个网址并没有工作。收到同样的答复。 :( 我也尝试通过图形API浏览器在用户的墙上发布请求,并且也出现了相同的结果。请问您是否可以验证我是否缺少任何步骤或任何特殊配置设置? – 2012-03-08 07:41:13

你specifing,你已经在URL中的ID

尝试删除

method.addParameter("id", "610446057");