Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
Java Facebook共享没有发生?_Java_Android_Facebook - Fatal编程技术网

Java Facebook共享没有发生?

Java Facebook共享没有发生?,java,android,facebook,Java,Android,Facebook,我正在开发一个应用程序,在其中我正在进行facebook共享。我可以成功地分享,但只有在我没有安装facebook应用程序时。当我安装facebook应用程序并尝试共享时,它要求登录,当我登录时,我会看到以下对话框“我的应用程序希望访问您的公共配置文件和朋友列表”。当我点击“OK”按钮时,它正在进行一些处理,然后再次出现在我的应用程序上,但没有任何内容可以共享。 请帮帮我。 这是我的密码:- public class BaseFbTwitterShareAppActivity extends

我正在开发一个应用程序,在其中我正在进行facebook共享。我可以成功地分享,但只有在我没有安装facebook应用程序时。当我安装facebook应用程序并尝试共享时,它要求登录,当我登录时,我会看到以下对话框“我的应用程序希望访问您的公共配置文件和朋友列表”。当我点击“OK”按钮时,它正在进行一些处理,然后再次出现在我的应用程序上,但没有任何内容可以共享。 请帮帮我。 这是我的密码:-

  public class BaseFbTwitterShareAppActivity extends Activity {
private UiLifecycleHelper uiHelper;
public Session.StatusCallback statusCallback = new SessionStatusCallback();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    uiHelper = new UiLifecycleHelper(this, statusCallback);
    uiHelper.onCreate(savedInstanceState);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data,
            new FacebookDialog.Callback() {
                @Override
                public void onError(FacebookDialog.PendingCall pendingCall,
                        Exception error, Bundle data) {
                }

                @Override
                public void onComplete(
                        FacebookDialog.PendingCall pendingCall, Bundle data) {
                    // Log.i("Activity", "Success!");
                }
            });
}

@Override
protected void onResume() {
    super.onResume();
    uiHelper.onResume();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    uiHelper.onSaveInstanceState(outState);
}
@Override
public void onPause() {
    super.onPause();
    uiHelper.onPause();
}

@Override
public void onDestroy() {
    super.onDestroy();
    uiHelper.onDestroy();
}
private void shareApp() {
    Bundle params = new Bundle();
    params.putString("name", "aaa");
    params.putString("caption",
            "bbb");
    params.putString("description", "Dummy data.");
    params.putString("link", "https://www.facebook.com/xxx");
    params.putString("picture",
            "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/yyy.png");

    WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(this,
            Session.getActiveSession(), params)).setOnCompleteListener(
            new OnCompleteListener() {

                @Override
                public void onComplete(Bundle values,
                        FacebookException error) {
                    if (error == null) {    
                        // and the post Id.
                        final String postId = values.getString("post_id");
                        if (postId != null) {
                            Toast.makeText(BaseFbTwitterShareAppActivity.this,                                      "Posted story, id: " + postId,                                  Toast.LENGTH_SHORT).show();
                        } else {
                            // User clicked the Cancel button
                            Toast.makeText(BaseFbTwitterShareAppActivity.this,
                                    "Publish cancelled", Toast.LENGTH_SHORT)
                                    .show();
                        }
                    } else if (error instanceof FacebookOperationCanceledException) {
                        // User clicked the "x" button
                        Toast.makeText(BaseFbTwitterShareAppActivity.this,
                                "Publish cancelled", Toast.LENGTH_SHORT)
                                .show();
                    } else {
                        // Generic, ex: network error
                        Toast.makeText(BaseFbTwitterShareAppActivity.this,
                                "Error posting story", Toast.LENGTH_SHORT)
                                .show();
                    }
                }

            }).build();
    feedDialog.show();
}




private void onSessionStateChange(Session session, SessionState state,
        Exception exception) {
    if (state.isOpened()) {
        shareApp();
    } else if (state.isClosed()) {
    }
}
private class SessionStatusCallback implements Session.StatusCallback {
    @Override
    public void call(Session session, SessionState state,
            Exception exception) {
        // Respond to session state changes, ex: updating the view
        // shareApp();
        try {
            // Log.d("FB", "Access token = " + session.getAccessToken());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        onSessionStateChange(session, state, exception);
    }
}


public void onFbButtonClick() {
    Session mSession = Session.getActiveSession();
    if (mSession == null) {
        mSession = new Session(this);
    }

    if (!mSession.isOpened() && !mSession.isClosed()) {
        mSession.openForPublish(new Session.OpenRequest(this)
                .setPermissions(Arrays.asList("publish_actions"))
                .setCallback(statusCallback));

    } else {
        Session.openActiveSession(this, true, statusCallback);
    }
    }
    }

我得到了答案,代码是完美的,但我的哈希键不匹配。我不知道为什么没有facebook应用程序就可以分享。但正如我所说的,这两种情况下都是共享的。 -当我有facebook应用程序时。 -当我没有facebook应用程序时