0

在 Facebook 2.5 图形 API 中,每当您发布发布请求时,您只需像这样调用请求方法 -

Util.parseJson(facebook.request("me/photos", parameters,"POST"));

如果您已获得授权,Facebook 将自动发布照片(或文字)。

但在新的图形 API 3.0 中,每次我发送请求时,Facebook 都会打开授权对话框。我可以发布照片和视频,但如果会话在授权后已经打开,我不想打开对话框。这是我的代码 -

private void uploadVideo() {
        final Session session = Session.getActiveSession();
        final Request request;

        if(session.isOpened())
        {

            OpenRequest openRequest = new OpenRequest(getActivity());
            openRequest.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
            openRequest.setCallback(null);

            List<String> PERMISSIONS = new ArrayList<String>();
            PERMISSIONS.add("publish_stream");


            Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(getActivity(), PERMISSIONS);
            session.requestNewPublishPermissions(newPermissionsRequest);

            Callback callback = new Callback() {

                @Override
                public void onCompleted(Response response) {
                    System.out.println(response.toString());
                }
            };

            File file = new File(Environment.getExternalStorageDirectory()+"/123.mp4");
            if(file.exists())
            {
                try {
                    request = Request.newUploadVideoRequest(session, file, callback);
                    RequestAsyncTask task = new RequestAsyncTask(request);
                    task.execute();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
        }

    }

更新

我尝试替换这两行 -

Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(getActivity(), PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);

有了这个-

openRequest.setPermissions(PERMISSIONS);

通过这样做,它不会显示授权对话框,但成功率是 2 出 3。有时响应消息状态 -

发生意外错误。

4

0 回答 0