我正在使用更新后的 Facebook SDK V3.0 final for Android。我正在尝试向没有应用程序的 facebook friend 发送应用程序请求。代码是:
public void fbookinvite(){
Bundle postParams = new Bundle();
postParams.putString("name", "X");
postParams.putString("message", "DOWNLOAD X.");
Session session = Session.getActiveSession();
postParams.putString("access_token", session.getAccessToken());
if (session==null||session.getState().isClosed()){
System.out.println("session is null");
}else{
//meaning we are good to go.
Request request = new Request(session,"/friend facebook id/apprequests", postParams, HttpMethod.POST, new Request.Callback() {
@Override
public void onCompleted(Response response) {
System.out.println("response was: "+response.toString());
}
});
Request.executeBatchAsync(request);
}
}
当代码运行时,我从打印的响应中得到以下内容之一:
responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 2, errorType: OAuthException, errorMessage: (#2) Failed to create any app request}, isFromCache:false
...或者:
Response: responseCode: unknown, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}
我拥有以下权限:publist_stream
和 publish_actions
。
问题解决后我还想知道如何在应用请求中添加一组收件人。
我不想使用 Facebook 对话框。
最佳答案
试试这个:
Bundle params = new Bundle();
params.putString("message",
"Learn how to make your Android apps social");
params.putString("to", "YOUR_FRIEND_UID_HERE");
WebDialog requestsDialog = (new WebDialog.RequestsDialogBuilder(
this, Session.getActiveSession(), params))
.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Bundle values,
FacebookException error) {
// your code here
}
}).build();
requestsDialog.show();
这是向某人明确发送应用请求的正确方法。如果您不包含 to
参数,用户可以选择要发送给谁。
关于android - 申请Android Facebook sdk 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14330680/