我一直在为Facebook挖掘Spring Social(1.0.2.RELEASE)。我无法找到如何通过春季社交发送apprequest。我已经在facebook上有一个带有键和内容的应用程序。我可以获取朋友等但不能向特定的Facebook用户发送apprequest。真的很感激。
答案 0 :(得分: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);
答案 1 :(得分:0)
根据Facebook文档,应用程序请求通过POST发送给用户到Graph API。请参阅此处的“创建”部分:
https://developers.facebook.com/docs/reference/api/user/#apprequests
Spring社交Facebook有一个GraphApi类,有两种发送POST的方法,“publish()”尝试从响应中提取id,而“post()”则不是:
所以你可能需要按照以下方式拨打电话:
Map<String, Object> requestData = new HashMap<String, Object>();
requestData.put("message", "My app's request message");
String requestId = graphApi.publish(userId, "apprequests", requestData);