いくつかのステップでこれに答えましょう。対処/明確化する必要があることがいくつかあります。
ACAccountCredential
このオブジェクトは、アカウント フレームワークが特定のアカウントのユーザーを認証できるようにするために、ACAccount オブジェクトと連携して使用されます。自由に読めるようには設計されていません。アカウントをアカウント フレームワークに保存する必要がある場合にのみ使用することを想定しています。
Twitter のドキュメントには、独自のサーバーを使用する代わりにアカウント フレームワークに移行してユーザーのアカウントを管理する場合、または古い iOS アプリケーションの場合はアカウントを自分でローカルに管理する場合、ACAccountCredential を入力する必要があると記載されています。
Apple はドキュメントで、アカウントがアカウント フレームワークに保存された後は資格情報を読み取ることができないと明確に述べています。
プライバシー上の理由から、アカウントが保存されると、このプロパティにはアクセスできなくなります。
そのため、サーバー側の管理に OAuth トークンが引き続き必要な場合に備えて、Twitter がリバース認証を使用する機能を提供するのはこのためです。Facebook アカウントで取得できる理由はわかりませんが、Twitter の場合、事前に保存された ACAccountCredential に直接ジャンプすることはできません。
Twitter の逆認証の使用
Twitter が提供するドキュメント (質問にリンクされています) は、OAuth アクセス トークンにアクセスするために何をする必要があるかについてプロセスをかなり明確にしていますが、明確ではないかもしれないいくつかのことを明確にしようと思います。
これを機能させるには、アカウントと Twitter フレームワークに加えて、追加のフレームワークが必要です。Social.framework
. これがインポートされていることを確認してください。これにより、トークンのリクエストがかなり簡単になります。
送信する必要があるリクエストに関しては、Twitter は ACAccounts を認識していません。この逆認証プロセスは iOS に固有のものではないことに注意してください。Web にアクセスできる任意のコンピューティング デバイスで実行できます。https://api.twitter.com/oauth/request_token
そのため、指定されたパラメーター (OAuth 標準のもの + ) を使用してHTTP POST 要求を に送信する必要がありますx_auth_mode
。必要なパラメーターについては、こちらをご覧ください。ただし、質問のリンクから、必要なパラメーターも明確になります。独自の nonce とその他のパラメーター値を指定する必要があります。
SLRequest クラスまたは AFNetworking を使用して、パラメーター値の NSDictionary を渡して Twitter への POST 要求を行うことができます (Twitter のドキュメントのコード サンプルをaccess_token
参照)。
以上です
これら 2 つの点に答えた後、ニーズに合った正しい OAuth トークンにアクセスするには、リバース認証を使用する必要があることは明らかだと思います。Twitter のドキュメントでは、何をする必要があるかが明確になっていますが (使用できるコード サンプルも提供されています)、そのためには一般的な OAuth 要求/応答管理を認識する必要があります。単純に ACAccount をアタッチすることはできません。辞書に必要な OAuth パラメータを入力してから、これを HTTP POST リクエストに に渡す必要がありますrequest_token
。私はあなたが参照できるようにかなりの数の参考文献を提供しました。それがあなたを正しい道に導いてくれることを願っています。