20

不可能だとみんなが言う前に、Spotify アプリを開き、Facebook ボタンでサインインしてください。

彼らがどのようにそれを行ったのか、1回のリクエストで「publish_stream」と基本的な権限/メールを取得するにはどうすればよいのか疑問に思っています.

また、最後のセッション (最後にアプリを使用したとき) からの特定の情報がある場合、Facebook SDK を使用して Facebook セッションを再開することは可能ですか?

編集- MUSICALLY AVERT の以下のスクリーンショット

Spotify マジック

4

5 に答える 5

20

Spotify で見たものは、結果ではありませんpublish_stream。彼らが使用したのは、オープン グラフです。

オープン グラフの概念には、アプリのアクションを FB アクティビティの投稿と統合し、ユーザーが使用するアプリケーションを通じてユーザーと共有することが含まれます。詳細については、上記のリンクを参照してください。


編集の説明: グラフを開く権限を確認してください

サンプル アクティビティ:

public class MainActivity extends Activity implements StatusCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OpenRequest open = new OpenRequest(this);
        open.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
        open.setPermissions(Arrays.asList(new String[]{"email", "publish_actions", "user_birthday", "user_hometown"}));
        open.setCallback(this);
        Session s = new Session(this);
        s.openForPublish(open);
    }

    @Override
    public void call(Session session, SessionState state, Exception exception) {
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(Session.getActiveSession()!=null)
            Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    }
}

このアクティビティはこれを表示します (ユーザーがログインしていない場合):

ここに画像の説明を入力

于 2013-03-11T07:19:02.583 に答える
1

私のアプリでは、OpenRequest のインスタンスを作成し、そのインスタンスにアクセス許可を設定しました。

Session currentSession = Session.getActiveSession();
if (currentSession == null || currentSession.getState().isClosed()) 
{
    Session session = new Session.Builder(context).build();
    Session.setActiveSession(session);
    currentSession = session;
}

if (currentSession.isOpened()) 
{
    //Do whatever u want. User has logged in
}
else if(!currentSession.isOpened())
{
    //Ask for username and password
    OpenRequest op = new Session.OpenRequest(context);

    op.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
    op.setCallback(null);

    List<String> permissions = new ArrayList<String>();
    permissions.add("publish_stream");
    op.setPermissions(permissions);

    Session session = new Builder(InvitePartners.this).build();
    Session.setActiveSession(session);
    session.openForPublish(op);
}

それはあなたに役立つかもしれません。

于 2013-03-11T12:54:12.060 に答える
0

アプリケーション ダッシュボードに移動します。次に、[アプリの編集] をクリックします。ページの左側に が表示されますPermission。クリックして。新しいページが来る。ボックスを見つけUser & Friend Permissions:ます。ここにタイプpublish_actions。今保存します。

Androidアプリから、一度ログインするだけでストーリーをFacebookに投稿できるようになりました。つまり、を使用してログインしLoginButton、何かを投稿してみてください。それはうまくいくはずです。

何が起こるか教えてください。

于 2013-03-04T23:51:06.347 に答える
0

私の質問の2番目の部分について疑問に思っている人のために:

Facebook SDK を使用して Facebook セッションを再開するには、次のコードを使用します

if(Session.openActiveSession(this) == null) { //Haven't logged in yet
    openSessionForRead(getString(R.string.app_id), Arrays.asList("email"));
}

Facebook はトークンをキャッシュします。

于 2013-03-05T16:07:00.350 に答える