How can I send an invitation to use an app with Graph API? I looked at the reference, and can't find something that fits. Any clue?
If you need to use restfb, as I got from your tags, you can try this:
This is a self contained junit test that retrieves the authentication token and posts an apprequest. No user generated auth_token is required but you can only send apprequests like this to users that already have authorized your app.
Dependencies are JUnit, Commons HttpClient and restfb itself.
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;
}
}