我一直在研究Spring Social (1.0.2.RELEASE)与Facebook的集成。但是我无法找到如何通过Spring Social发送apprequest的方法。我已经在Facebook上创建了一个应用程序并获取了密钥等信息。我可以获取好友列表等信息,但无法向特定的Facebook用户发送apprequest。非常感谢您的帮助。
我一直在研究Spring Social (1.0.2.RELEASE)与Facebook的集成。但是我无法找到如何通过Spring Social发送apprequest的方法。我已经在Facebook上创建了一个应用程序并获取了密钥等信息。我可以获取好友列表等信息,但无法向特定的Facebook用户发送apprequest。非常感谢您的帮助。
// 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);
https://developers.facebook.com/docs/reference/api/user/#apprequests
Spring Social 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);
List<FacebookProfile> friendProfiles = facebook.friendOperations().getFriendProfiles();
。必须有类似于facebook.???Operations.send???(userId,redirect,data,message);
的东西。因此,与developers.facebook.com上的文档无关,因为Spring会为您处理它。 - hevi