android - 在 Facebook 墙上发布内容而不在 Android 上显示对话框

标签 android facebook facebook-graph-api facebook-rest-api

我正在尝试使用 Facebook Android SDK 在 Facebook 墙上发布提要,而不打开对话框。我试图寻找方法但找不到。谁能告诉他们如何在不打开对话的情况下在后台发布到墙上。

我尝试使用下面的代码

public static void PublishToFeedInBackground()
{
     final Bundle _postParameter = new Bundle();
     _postParameter.putString("name", name);
     _postParameter.putString("link", link);
     _postParameter.putString("picture", link_to_image);
     _postParameter.putString("caption", caption);
     _postParameter.putString("description", description);

     final List<String> PERMISSIONS = Arrays.asList("publish_actions");

     if (Session.getActiveSession() != null)
     {
            // Check for publish permissions    
            List<String> _permissions = Session.getActiveSession().getPermissions();
            if (!isSubsetOf(PERMISSIONS, _permissions))
            {
                NewPermissionsRequest reauthRequest = new Session.NewPermissionsRequest(this.GetContext(), PERMISSIONS);
                Session.getActiveSession().requestNewReadPermissions(reauthRequest);
                return;
            }   
     }

    this.runOnUiThread(new Runnable()
    {
        @Override
        public void run() 
        {
            Request request = new Request(Session.getActiveSession(), "me/feed", _postParameter, HttpMethod.POST);

            RequestAsyncTask task = new RequestAsyncTask(request);
            task.execute();
        }
    });
}

但它发布了我的应用程序页面详细信息,而不是我给出的 *_postParameter*。

我还尝试使用其他 2 种方法,但没有发布任何内容

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("name", name);
    params.put("link", link);
    params.put("picture", link_to_image);
    params.put("caption", caption);
    params.put("description", description);

    JSONObject jfeed = new JSONObject(params);
    final GraphObject _feed = GraphObject.Factory.create(jfeed);

    Request.executePostRequestAsync(Session.getActiveSession(), "https://graph.facebook.com/"+userID+"/feed", _feed, new Request.Callback()
    {
       @Override
       public void onCompleted(Response response) 
       {
            Log.i("tag", response.toString());
       }
   });

第二种方法是

Request.executeRestRequestAsync(Session.getActiveSession(), "stream.publish", _postParameter, HttpMethod.POST);

最佳答案

我发现问题出在哪里了。我没有询问正确的权限,并且图形路径也是错误的。正确的方法是:

public static void PublishToFeedInBackground()
{

final Bundle _postParameter = new Bundle();
 _postParameter.putString("name", name);
 _postParameter.putString("link", link);
 _postParameter.putString("picture", link_to_image);
 _postParameter.putString("caption", caption);
 _postParameter.putString("description", description);

     final List<String> PERMISSIONS = Arrays.asList("publish_stream");

 if (Session.getActiveSession() != null)
 {
       NewPermissionsRequest reauthRequest = new Session.NewPermissionsRequest(this.GetContext(), PERMISSIONS);
        Session.getActiveSession().requestNewPublishPermissions(reauthRequest);
 }

this.runOnUiThread(new Runnable()
{
    @Override
    public void run() 
    {
        Request request = new Request(Session.getActiveSession(), "feed", _postParameter, HttpMethod.POST);

        RequestAsyncTask task = new RequestAsyncTask(request);
        task.execute();
    }
});
}

关于android - 在 Facebook 墙上发布内容而不在 Android 上显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091591/

相关文章:

Android Sherlock VS AppCompat

android - 如何在我的应用程序中跟踪自然用户与付费广告 Facebook 用户?

android - SessionState.OPENED_TOKEN_UPDATED 在适用于 Android 的 Facebook SDK 3.0.1b 中意味着什么

javascript - Facebook 分享深度链接 - Javascript

ios - Facebook requestForMyFriends 返回没有 friend 数据

android - ShadowAlertDialog.getLatestAlertDialog() 为 android.support.v7.app.AlertDialog 返回 null

java - 当android网络连接较弱时如何处理网络调用

javascript - Facebook opengraph - 自定义对象和操作 - 用户名 :action 需要至少存在一个故事

javascript - REST API分页如何保证数据一致性

Facebook Graph Api json 缺少帖子