不可能だと言う前に、Spotifyアプリを開いて、Facebookボタンでサインインしてください。
彼らがそれをどのように行ったのか、そして「publish_stream」と基本的な権限/メールを1つのリクエストでどのように取得できるのかと思っています。
また、前回のセッション(最後にアプリを使用したとき)から特定の情報がある場合、Facebook SDKを使用してFacebookセッションを再開することはできますか?
[〜#〜] edit [〜#〜]-音楽的には以下のスクリーンショット
Spotifyで目にしたのはpublish_stream
の結果ではありません。使用したのは Open Graph です。
オープングラフの概念には、アプリのアクションと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);
}
}
このアクティビティはこれを表示します(ユーザーがログインしていない場合):
私のアプリでは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);
}
それはあなたに役立つかもしれません。
OnCreateメソッドで個別に設定するだけです。
LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setPublishPermissions("publish_actions");
authButton.setFragment(this);
Session.NewPermissionsRequest newPermissionsRequest = new
Session.NewPermissionsRequest(this, Arrays.asList("read_stream"));
Session.getActiveSession().requestNewReadPermissions(newPermissionsRequest);
アプリケーションダッシュボードに移動します。次に[アプリを編集]をクリックします。ページの左側にPermission
が表示されます。クリックして。新しいページが表示されます。探し出す User & Friend Permissions:
ボックス。ここにタイプpublish_actions
。今保存します。
Androidアプリから、一度ログインするだけでFacebookにストーリーを投稿できます。つまり、LoginButton
を使用してログインし、何かを投稿してみてください。うまくいくはずです。
何が起こるか教えてください。
私の質問の2番目の部分について疑問に思っている人のために:
Facebook SDKを使用してFacebookセッションを再開するには、次のコードを使用します
if(Session.openActiveSession(this) == null) { //Haven't logged in yet
openSessionForRead(getString(R.string.app_id), Arrays.asList("email"));
}
Facebookはトークンをキャッシュします。