2013-06-20 3 views
7

ACAccountStoreを作成し、ユーザーのFacebookアカウントにアクセスし、ACAccountオブジェクトにアカウントを保存し、資格情報からトークンを取得できるようにします。しかし、このトークンを使ってFacebookから情報を取得しようとすると、認証されず、renewCredentialsForAccountを使用して資格情報を更新しようとすると、応答はACAccountCredentialRenewResultRejectedになります。renewCredentialsForAccountを呼び出すときに "ACAccountCredentialRenewResultRejected"メッセージを処理する方法

私は簡単な手段で許可を要求するために再度表示するための許可ポップアップを取得できません。もう一度許可を求めることができる唯一の方法は、アプリで求めている権限を変更するか、設定で自分のFacebookアカウントを削除して再追加することです。

この時点で有効な認証トークンを取得するにはどうすればよいですか?

+0

facebookのアプリ設定ページからアプリを削除することで、この同じエラーを再現できます。ユーザーの許可を得るために許可要求のポップアップをもう一度行う必要があるように思えますが、私の電話でログアウトするまでポップアップは表示されません。 – ZachLHelms

+0

次回にアプリを起動してログインしようとするときに 'renewCredentialsForAccount'呼び出しを行うと、アプリに権限を与えるよう促されます。私がその電話をしないと、私はそれをするように求められません。 – ZachLHelms

+0

同じ問題があります。簡単に再現する:1)アプリケーションに一度許可を与える。2)FBグラフエクスプローラを終了せずにすべての権限をクリアする。3)renewCredentialsForAccountを試してみる。誰かがこれに対する解決策を見つけましたか? FB apiにcloseSessionsAndToken(またはこれに類似した)がこの問題を解決しました。しかし、社会的なapiについてはどうですか? – Teddy

答えて

3

受け入れられた回答がないので、私が見つけたものを返信しようとします。上記のコメントの後、renewCredentialsForAccountのドキュメントを読んでください。「ユーザーがあなたのアプリを認証解除した場合、この更新リクエストはACAccountCredentialRenewResultRejectedを返します。」

Facebookを拒否するユーザーではないという誤解を招くのは何ですか。

私はこのコンセプトを理解していると思うし、私のようにこの問題で失敗した人に返信しようとしています。実際に私が気づいていなかったのは、ACAccountCredentialRenewResultRejectedという結果を受け取ったとき、FBトークンが完全にリセットされるということです。それがパズルの重要な要素です。

ですから、異なる結果のために何をする必要があるか:

  • は、あなたが行ってもいいですし、あなたが新しいトークンを持っているをACAccountCredentialRenewResultRenewed。この更新されたトークンでSLRequestを実行してください。
  • をACAccountCredentialRenewResultRejected:あなたのトークンがあなたはそれがゼロなり1を取得しようとした場合、をリセットしています。ユーザーからのアクセス許可を一から要求し、Facebook用のアプリケーションを「インストールする」必要があります。つまり、最初に通常の「電子メール+その他の読み取りアクセス権」を求め、別の要求で書き込みアクセス権を要求します(必要な場合)。 (誰かがFacebookが写真をアップロードしたい場合にFacebookを2度気にする理由を説明できます)
  • ACAccountCredentialRenewResultFailed:私はこれまでこれを再現できませんでした。私はここであなたにエラーメッセージをドロップすると信じています。

これは私が思いついたものです。これは非常に厄介なAPIであり、貧弱な文書とサンプルがありません。また、インターネット上の例は「成功」についてのもので、ユーザがアプリの外で権限を取り消すことはできないという事実は気にしない。私は一定の試行で&開発モードに失敗しています。灰色の髪を失うが、終わりに来る。私の反応が他人を助けることを願っています

+0

非常に便利で詳細な説明、親指アップ! –

関連する問題