android - 申请Android Facebook sdk 3.0

标签 android facebook apprequests

我正在使用更新后的 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_streampublish_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/

相关文章:

php - 如何使用社交网络登录或oAuth?

Facebook 请求对话框和 "app_non_users"过滤器不工作

java - Android 操作栏崩溃

android - 如何检测错误?

python - 无法使用 Python 和 Selenium 登录 facebook。 send_keys() 没有做任何事情

android - Facebook Android 客户端到自定义应用程序通知

facebook - 应用请求成功,但没有显示通知

iphone - 企业原生移动应用程序开发

Android-使用剪贴板从 TextView 复制和粘贴所需字符串的代码

java - 检查数据库中密码的函数