Facebook:发送应用程序邀请
如果您需要使用restfb,因为我从你的标签了,你可以试试这个:
这是一个自包含JUnit测试检索身份验证令牌和职位的apprequest。不需要用户生成auth_token,但只能向已经授权您的应用的用户发送这样的apprequest。
依赖关系是JUnit,Commons HttpClient和restfb本身。
package com.apprequesttest;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.junit.Test;
import com.restfb.DefaultFacebookClient;
import com.restfb.Facebook;
import com.restfb.FacebookClient;
import com.restfb.Parameter;
import com.restfb.types.FacebookType;
public class AppRequestTest
{
@Test
public void testAppRequest() throws Exception
{
String appId = "YOUR_APP_ID";
String appSecret = "YOUR_ACCESS_TOKEN";
String tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=" + appId + "&client_secret=" + appSecret
+ "&grant_type=client_credentials";
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(tokenUrl);
client.executeMethod(method);
String rawAccessToken = new String(method.getResponseBody());
String accessToken = rawAccessToken.split("=")[1];
FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
String apprequestCall = "TARGET_USER_ID/apprequests";
AppRequestResponse apprequest = facebookClient.publish(apprequestCall,
AppRequestResponse.class,
Parameter.with("message", "BANANAMSG"),
Parameter.with("data", "BANANADATA"));
System.out.println(apprequest.request);
System.out.println(apprequest.to);
}
/**
* Couldn't find any beans that would acomodate this response on restfb so we create our own here
* Looks like "to" is an array but this works well enough for the sake of the example
*/
public static class AppRequestResponse extends FacebookType
{
private static final long serialVersionUID = 1L;
public AppRequestResponse()
{
// Empty
}
@Facebook
public String request;
@Facebook
public String to;
}
}
@garbelin ...我试过你的代码,并能够发送邀请,但我有一个小问题。我不断收到这个异常。我发布了相同的问题http://*.com/questions/10460014/facbook-post-userid-apprequest-throws-an-exception-invitation-is-sent-though – Santhosh 2012-05-05 08:17:50
@ skokal01我从来没有得到那些空的403错误。对我来说,它闻起来像一个网络问题。 – garbelini 2012-05-07 09:57:22
嗨,我得到322391074505234作为请求ID和xxxx字段。但我从用户帐户查看时看不到实际的邀请。我可能缺少什么? – kitokid 2012-05-29 03:32:28
甲HTML/JavaScript的实施例中描述:
<html>
<head>
<title>My Great Website</title>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js">
</script>
<script>
FB.init({
appId:'YOUR_APP_ID', cookie:true,
status:true, xfbml:true
});
FB.ui({ method: 'apprequests',
message: 'Here is a new Requests dialog...'});
</script>
</body>
</html>
可以的JavaScript关联到点击一个链接的事件等
您可以在这里找到详细信息:
http://developers.facebook.com/blog/post/464/
不知道这与邀请 – izb 2011-10-26 14:04:03
这是如何在FB中进行邀请 – 2012-07-04 11:16:25
现在是不可能的。旧的fbml和新的请求对话框是发送请求的唯一方法。 – DannyKK 2011-05-20 14:28:36
因此无法从我们的服务器发送请求? – 2011-05-20 15:07:09
@Traroth:没错。发送带有POST的直接邀请到{user_id}/apprequests的唯一方式,并且用户必须已经安装了您的应用程序并获得了访问该端点的权限。 – typeoneerror 2011-09-06 16:16:40