2012-08-31 109 views
3

我一直在挖Facebook的Spring Social(1.0.2.RELEASE)。我无法找到如何通过春季社交发送apprequest。我已经有一个在Facebook上的应用程序与钥匙和东西。我可以取得朋友等,但不能向特定的Facebook用户发送apprequest。真的很感激。如何通过春季社交Facebook发送apprequest

+0

你如何通过弹簧社会的Facebook获取好友资料? –

+0

你遇到什么问题?文档(https://developers.facebook.com/docs/requests/)对此非常有用,JS SDK触发请求对话框,并且您需要一些服务器端代码来接受和删除请求 – Igy

+0

Spring社交摘要的详细信息,例如获取好友档案的代码是'List friendProfiles = facebook.friendOperations()。getFriendProfiles();'。必须有一些像'facebook。??? Operations.send ???(userId,redirect,data,message);'因此,与developers.facebook.com上的文档无关,因为spring会为你处理它 – hevi

回答

5

下面的例子应该做的伎俩 - 即创建一个应用程序访问令牌,然后创建一个使用已使用创建的应用程序访问令牌初始化一个FacebookTemplate请求

// retrieve app access token 
RestTemplate restTemplate = new RestTemplate(); 
String result = restTemplate.getForObject("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=<app_id>&client_secret=<app_secret>", String.class); 
String appAccessToken = result.replaceAll("access_token=", ""); 

// create the request  
FacebookTemplate appRequestTemplate = new FacebookTemplate(appAccessToken); 
String userId = "1234567890"; 
MultiValueMap<String, Object> requestData = new LinkedMultiValueMap<String, Object>(); 
requestData.set("message", "Sending a request through to you..."); 
String resultOfApprequest = appRequestTemplate.publish(userId, "apprequests", requestData); 
0

根据Facebook文档,应用程序请求通过POST发送给Graph API。看到这里的“创建”部分:

https://developers.facebook.com/docs/reference/api/user/#apprequests

春社会Facebook有两种方法GraphApi类发送帖子,“出版()”,它试图从响应中提取的ID和“后() “这不:

http://static.springsource.org/spring-social-facebook/docs/1.0.x/api/org/springframework/social/facebook/api/GraphApi.html

所以,你可能需要做的线沿线的一个电话:

Map<String, Object> requestData = new HashMap<String, Object>(); 
requestData.put("message", "My app's request message"); 
String requestId = graphApi.publish(userId, "apprequests", requestData); 
+1

请注意,端点需要应用程序访问令牌,而不是用户访问令牌。通常情况下,FacebookTemplate是由用户访问令牌(特别是通过连接框架构建的)构建的,因此端点将不起作用。但是,您仍应该可以使用应用程序访问令牌(通过客户端凭据授予获得)手动构建FacebookTemplate并发布到该端点。这有点笨拙,但应该工作。我真的应该在FacebookTemplate中真正考虑像这样的应用程序级别的请求,所以这不是一件容易的事情。考虑这一点。 –

相关问题