1

Facebookでデータを共有するAndroidアプリケーションを開発しています。ログイン認証をFacebook SDK 3.0.2正常に実装し、Facebook 共有も実装しましたが、Facebook アプリがデバイスに既にインストールされていると問題が発生します。

デバイスに Facebook アプリが既にある場合、私のアプリはネイティブの Facebook アプリのログインと共有方法に移動し、正常にログインしますが、クリックして共有すると、「myApp があなたのパブリック プロファイルと友達リストにアクセスしようとしています」と表示されます。OKボタンをクリックしても何もしません。私はたくさん検索しましたが、有用な解決策は見つかりませんでした。また、Facebook のドキュメントにも解決策が見つかりませんでした。

private void publishFeedDialog(String title, String description,
        String time, String imageUrl) {

    String fileId = m_YouScoopList.get(mShareIndex).file_id;
    String linkUrl = "";

    if (m_YouScoopList.get(mShareIndex).file_type_id.equals("2")) {
        linkUrl = "http://www.mywebsite.com/news/my/imageshare/"
                + fileId;
    } else {
        linkUrl = "http://www.mywebsite.com/news/imageshare/videoshare/"
                + fileId;
    }
    Bundle params = new Bundle();
    params.putString("name", "" + title);
    params.putString("caption", "" + time);
    params.putString("description", "" + description);
    params.putString("link", linkUrl);
    params.putString("picture", "" + imageUrl);

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

                public void onComplete(Bundle values,
                        FacebookException error) {
                    // TODO Auto-generated method stub

                    if (error == null) {
                        // When the story is posted, echo the success
                        // and the post Id.
                        final String postId = values.getString("post_id");
                        if (postId != null) {
                            Toast.makeText(MainActivity5.this,
                                    "Posted on facebook successfully!",
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            // User clicked the Cancel button
                            Toast.makeText(
                                    MainActivity5.this
                                            .getApplicationContext(),
                                    "Publish cancelled", Toast.LENGTH_SHORT)
                                    .show();
                        }
                    } else if (error instanceof FacebookOperationCanceledException) {
                        // User clicked the "x" button
                        Toast.makeText(
                                MainActivity5.this.getApplicationContext(),
                                "Publish cancelled", Toast.LENGTH_SHORT)
                                .show();
                    } else {
                        // Generic, ex: network error
                        Toast.makeText(
                                MainActivity5.this.getApplicationContext(),
                                "Error posting story", Toast.LENGTH_SHORT)
                                .show();
                    }
                }

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

1 に答える 1

1

LoginButton を宣言するときにこれを追加します。

authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);

于 2013-08-19T08:22:13.950 に答える