2016-03-31 1 views
1

FacebookConnectを使用してユーザーのFacebookブックの壁に投稿しようとしていますが、createOauth2()メソッドのメソッドが独自の権限でスコープをオーバーライドしています。Facebook Graph Apiスコープがcodenameoneを上書きする

EDIT

if (fb.isNativeLoginSupported()) { 
         Dialog.show("native", "Yes", "Ok", null); 
         if (!fb.hasPublishPermissions()) { 
          Dialog.show("permission", " no publish permission", "ok", null); 
          fb.askPublishPermissions(new LoginCallback() { 
           @Override 
           public void loginSuccessful() { 
            Dialog.show("permission", "accessed: " + fb.hasPublishPermissions(), "Ok", null); 
            System.out.println("permission: " + fb.hasPublishPermissions()); 
            token = fb.getAccessToken().getToken(); 
            PhotoShare share = new PhotoShare(); 
            share.sendPhoto(token, id); 
           } 
           @Override 
           public void loginFailed(String errorMessage) { 
            System.out.println("failed permission: " + errorMessage); 
            Dialog.show("permission error", errorMessage, "Ok", null); 
           } 
          }); 
         } else { 
          Dialog.show("permission", "publish permission", "ok", null); 
          PhotoShare share = new PhotoShare(); 
          share.sendPhoto(token, id); 
         } 
        } else { 
         Dialog.show("permission", "No native support", "Ok", null); 
         fb.setScope("publish_actions"); 
         fb.setCallback(new LoginCallback() { 
          @Override 
          public void loginSuccessful() { 
           token = fb.getAccessToken().getToken(); 
           PhotoShare share = new PhotoShare(); 
           share.sendPhoto(token, id); 
          } 
         }); 
         fb.doLogin(); 
        } 

背中のAndroidデバイス上で呼ばれることは決してありませんaskPublishPermissionsのLogincall。 また、ログイン時に、アプリは私が一度も聞いたことのないフレンドリストと電子メールの許可を求めます。 FacebookConnectのソースコードでは、createOuth()メソッドがそれらをスコープに追加していますが、これらのアクセス許可は必要ありません。

ソリューション:

これらは、私は同じ問題を持つ人のために、その後のステップがあります。 まず、エミュレータに許可を求める問題が見つかりました。だから私は許可を求める自分のOuthログインを作成しました。

アンドロイドビルドの場合。

  1. ビルドのヒントandroid.facebook_permissionsキーに値を設定して、必要なアクセス許可を追加します。これは必須のステップです。アクセス許可またはその他の書き込み権限はpublish_actionではなく、ここには読み取り権限のみを含めてください。書き込み許可以外の許可が必要ない場合は、Facebookのデフォルトの許可であるpublic_profileを追加します。
  2. publish_actionsの許可にはFacebookConenct.askPublishPermissionsを使用してください。
  3. doLogin()を最初に使用した場合、何らかの理由でaskPublishPermissionは私の場合は何もしませんでした。だから私はaskPublishPermissionを使用して、doLogin()を呼び出して自動的にログインページを呼び出しました。

答えて

0

どのように許可をリクエストしましたか?

書き込むにはaskPublishPermissionsに電話する必要があることに気付きましたか?

Webアプリケーションとは異なり、ネイティブアプリケーションは書き込み権限を要求する必要があります。

hereのようにビルドヒントandroid.facebook_permissionsを設定しましたか?

+0

私はコードと詳細で質問を更新しました – umuieme

+0

私は私の答えにいくつかの詳細を追加しました。 –

+0

android.facebook_permissionsと私は私の質問で更新される問題を解決いくつかの他のもの。しかし、私はまだログインのように私の範囲をオーバーライドエミュレータの問題があると思う。親切にfacebookConnect.createOuth()メソッドをチェックしてください。 – umuieme