3

我一直在为 Facebook 挖掘 Spring Social (1.0.2.RELEASE)。我不知道如何通过 spring social 发送 apprequest。我已经在 facebook 上有一个带有键和东西的应用程序。我可以获取朋友等,但不能向特定的 facebook 用户发送 apprequest。真的很感激。

4

2 回答 2

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);
于 2012-10-02T06:23:56.977 回答
0

根据 Facebook 文档,应用程序请求通过 POST 发送到 Graph API 给用户。请参阅此处的“创建”部分:

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

Spring Social Facebook 有一个 GraphApi 类,它有两种发送 POST 的方法,“publish()”尝试从响应中提取 id,“post()”不:

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);
于 2012-09-11T15:41:15.820 回答