Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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
Facebook SDK 3.0 android代码是从eclipse开始工作的,但不是在playstore应用程序中?_Android_Facebook_Release_Google Play Services - Fatal编程技术网

Facebook SDK 3.0 android代码是从eclipse开始工作的,但不是在playstore应用程序中?

Facebook SDK 3.0 android代码是从eclipse开始工作的,但不是在playstore应用程序中?,android,facebook,release,google-play-services,Android,Facebook,Release,Google Play Services,在我们的应用程序中,我们将Facebook与新的Facebook sdk版本3.0进行了集成 如果我从eclipse在我的测试设备上启动应用程序,一切正常。facebook应用程序或webView(如果未安装本机应用程序)将打开,登录到facebook并回拨并发布帖子 但是,如果我在google playstore中将此代码作为apk重新发布,从那里下载并测试它,facebook应用程序启动,用户登录并允许发布,那么就不会发生任何事情,不会向wall O_O发布帖子 代码如下: private

在我们的应用程序中,我们将Facebook与新的Facebook sdk版本3.0进行了集成

如果我从eclipse在我的测试设备上启动应用程序,一切正常。facebook应用程序或webView(如果未安装本机应用程序)将打开,登录到facebook并回拨并发布帖子

但是,如果我在google playstore中将此代码作为apk重新发布,从那里下载并测试它,facebook应用程序启动,用户登录并允许发布,那么就不会发生任何事情,不会向wall O_O发布帖子

代码如下:

private void facebookLogin()
{

    Session.openActiveSession(this, true, new Session.StatusCallback() 
      {

        @Override
        public void call(Session session, SessionState state, Exception exception) 
        {
            // TODO Auto-generated method stub


            if(session.isOpened())
            {


                performPublish(PendingAction.POST_PHOTO);

            }
        }
    });
}

private void performPublish(PendingAction action) {
        Session session = Session.getActiveSession();
        if (session != null) {
            pendingAction = action;
            if (hasPublishPermission()) {
                // We can do the action right away.
                handlePendingAction();
            } else {
                // We need to get new permissions, then complete the action when we get called back.
                session.requestNewPublishPermissions(new Session.NewPermissionsRequest(this, PERMISSIONS));
            }
        }
    }
private void handlePendingAction() 
 {
        PendingAction previouslyPendingAction = pendingAction;
        // These actions may re-set pendingAction if they are still pending, but we assume they
        // will succeed.
        pendingAction = PendingAction.NONE;

        switch (previouslyPendingAction) 
        {
            case POST_PHOTO:
                postPhoto();
                break;
            case POST_STATUS_UPDATE:
                postStatusUpdate();
                break;
        }
 }
private void postPhoto() 
 {
        if (hasPublishPermission()) 
        {

            Bitmap logo = g.getLevelBitmaps()[0];
            Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), logo, new Request.Callback() 
            {
                @Override
                public void onCompleted(Response response) 
                {
                    postStatusUpdate();
                    if(g.isAchievementsActivated())
                    {
                        Swarm.init(logoQuestion,3777,"831e03485c37444f9b94de8fdf2e676f");
                        SwarmAchievement.unlock(10093);
                    }
                    //Toast.makeText(logoQuestion, "Posted", Toast.LENGTH_SHORT).show();
                    performPublish(PendingAction.POST_STATUS_UPDATE);
                }
            });
            Bundle params = new Bundle();
            params.putString("description", "Who know's that logo? \n" + hintQuestionText+ " posted from Videogames Logoquiz now available for Android and iOS");
            //request.setParameters(params);
            request.executeAsync();

        } 
        else 
        {
            pendingAction = PendingAction.POST_PHOTO;
        }
 }

private void postStatusUpdate() 
 {
        if (hasPublishPermission()) 
        {
            String question = "Who know's that logo? "+hintQuestionText+" Get Videogames Logoquiz. It's now available for iOS and Android.";
            Request request = Request
                    .newStatusUpdateRequest(Session.getActiveSession(), question, new Request.Callback() 
                    {
                        @Override
                        public void onCompleted(Response response) 
                        {
                            Toast.makeText(logoQuestion, "Posted", Toast.LENGTH_SHORT).show();
                        }
                    });
            request.executeAsync();
        } 
        else 
        {
            pendingAction = PendingAction.POST_STATUS_UPDATE;
        }
 }
hasPublishPermission函数:

private boolean hasPublishPermission() 
 {
        Session session = Session.getActiveSession();
        return session != null && session.getPermissions().contains("publish_actions");
 }
iam请求的权限是:

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions","user_photos");
在我的Android清单中,我有以下权限集成facebook:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
我不明白为什么它可以通过测试工作,但不能在同一版本上工作

有人知道这是个解决办法吗


谢谢大家!

你是否正确设置了facebook应用程序?又名你需要保存在dev.facebook上的散列