Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从android应用程序查看facebook帖子_Android_Facebook_Permissions_Facebook Like_Publish - Fatal编程技术网

如何从android应用程序查看facebook帖子

如何从android应用程序查看facebook帖子,android,facebook,permissions,facebook-like,publish,Android,Facebook,Permissions,Facebook Like,Publish,我已经在我的应用程序中实现了登录身份验证,我知道如何共享,但我对这类东西越来越着迷,因为我从来没有得到积极的响应。那么…我怎样才能通过请求发布权限从我的android应用程序和facebook sdk中获取帖子呢?这对我来说很有用 private static final List<String> PERMISSIONS = Arrays.asList("publish_actions", "publish_stream"); public void likeThis() { Se

我已经在我的应用程序中实现了登录身份验证,我知道如何共享,但我对这类东西越来越着迷,因为我从来没有得到积极的响应。那么…我怎样才能通过请求发布权限从我的android应用程序和facebook sdk中获取帖子呢?

这对我来说很有用

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;
    }
}
private static final List PERMISSIONS=Arrays.asList(“发布动作”、“发布流”);
像这样的公共空间(){
Session=Session.getActiveSession();
if(session!=null&&session.isOpened()){
List permissions=session.getPermissions();
如果(!isSubsetOf(权限、权限)){
pendingPublishReauthorization=真;
Session.NewPermissionsRequest NewPermissionsRequest=新建Session.NewPermissionsRequest(此为权限);
if(设置权限(会话、新权限请求))
返回;
}
Request.Callback=new Request.Callback(){
未完成公共无效(响应){
if(响应!=null){
FacebookRequestError=response.getError();
if(错误!=null){
//错误
}否则{
//成功
}
}否则{
MessageToast toast=MessageToast.getInstance(mContext);
toast.show(“Tente Novatemente mais tarde”,MessageToast.ALERT);
}
}
};
请求=新请求(会话,“1442581505974136/likes”,null,HttpMethod.POST,回调);
RequestAsyncTask任务=新的RequestAsyncTask(请求);
task.execute();
}否则{
//未记录
}
}
私有布尔isSubsetOf(集合子集、集合超集){
for(字符串:子集){
如果(!superset.contains(string)){
返回false;
}
}
返回true;
}
私有布尔设置权限(最终会话会话、最终新权限请求新权限请求){
试一试{
Log.i(标记“获取新权限…”);
session.requestNewPublishPermissions(newPermissionsRequest);
返回true;
}捕获(非法状态){
Log.e(“setPermissions”,“[IllegalStateException]\n”+e.getMessage());
pendingPublishReauthorization=假;
返回false;
}捕获(不支持操作异常e){
Log.e(“setPermissions”,“[UnsupportedOperationException]\n”+e.getMessage());
pendingPublishReauthorization=假;
返回false;
}
}

但有时,我不喜欢一些fb_id。我不知道为什么…

什么是productbean?你上的课?为什么不在yout方法中使用此产品对象?并且该方法isSubsetOf()?请将您在like方法中使用的方法的代码也张贴出来。:)对不起,我添加了这个方法。模型ProductBean并不重要。我曾经获得facebook\u post\u id,该id是持久的。请…也添加方法setPermissions。=)传递给方法的JSON返回哪个id?“object_id”或“id”的第二部分(在“_”之后)?查看此帖子:您的任务由简单库解决。