【问题标题】:How to like a facebook post from android app如何在 android 应用程序中点赞 Facebook 帖子
【发布时间】:2014-03-07 12:35:39
【问题描述】:

我已经在我的应用程序中实现了登录身份验证,我知道如何分享,但我对类似的东西感到很疯狂,因为我从来没有得到过积极的回应。那么...我怎样才能通过请求发布权限从我的带有 facebook sdk 的 android 应用程序中获得帖子?

【问题讨论】:

标签: android facebook permissions facebook-like publish


【解决方案1】:

它对我有用。

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions", "publish_stream");

public void likeThis() {
Session session = Session.getActiveSession();       

if (session != null && session.isOpened()) {
    List<String> permissions = session.getPermissions();
    if (!isSubsetOf(PERMISSIONS, permissions)) {
        pendingPublishReauthorization = true;
        Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS);

        if (setPermissions(session, newPermissionsRequest))
            return;
    }

    Request.Callback callback = new Request.Callback() {
        public void onCompleted(Response response) {

            if (response != null) {
                FacebookRequestError error = response.getError();

                if (error != null) {
                    //                      error
                } else {
                    //                      success
                }
            } else {
                MessageToast toast =  MessageToast.getInstance(mContext);
                toast.show("Tente novamente mais tarde", MessageToast.ALERT);
            }
        }
    };

    Request request = new Request(session, "1442581505974136/likes", null, HttpMethod.POST, callback);

    RequestAsyncTask task = new RequestAsyncTask(request);
    task.execute();
}else{
//      not logged
}

}

private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {
    for (String string : subset) {
        if (!superset.contains(string)) {
            return false;
        }
    }
    return true;
}

private boolean setPermissions(final Session session, final NewPermissionsRequest newPermissionsRequest) {

    try {
        Log.i(TAG, "Getting a new permission...");
        session.requestNewPublishPermissions(newPermissionsRequest);

        return true;
    } catch (IllegalStateException e) {
        Log.e("setPermissions","[IllegalStateException] \n" + e.getMessage());


        pendingPublishReauthorization = false;

        return false;
    } catch (UnsupportedOperationException e) {
        Log.e("setPermissions","[UnsupportedOperationException] \n" + e.getMessage());


        pendingPublishReauthorization = false;

        return false;
    }
}

但有时,我不喜欢某些 fb_id。我还不知道为什么..

【讨论】:

  • 什么是productbean?你做的一门课?你为什么不在你的方法中使用这个产品对象?而那个方法是SubsetOf()?
  • 请把你使用的方法的代码贴在类似的方法里面。 :)
  • 抱歉,我添加了方法。和模型 ProductBean 无关紧要。我曾经得到持久的 facebook_post_id。
  • 请...也添加方法 setPermissions。 =)
  • 您传递给方法的 JSON 返回了哪个 id? “object_id”还是“id”的第二部分(“_”之后)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多