私のアプリは、facebook と twitter に公開と閲覧の許可を求めます。現在の動作方法は、アプリを再起動するたびに、許可を再度求めるだけです。
このプロセスには長い時間がかかります。他のほとんどのアプリはそのようには機能しません。彼らはどのようにそうするのですか?使用できるトークンが既にあると思っていたので、それが起こったときに保存できたはずです。
処理が速いと思いました。
たとえば、このコードを見てください
[self vSuspendAndHaltThisThreadTillUnsuspendedWhileDoing:^{
[BGHPTools vDoForeGroundAndWait:^{
PO (self.ACAccountType);
PO([self dicReadOptions]);
[self.ACAstore requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
}];
}];
ほとんどの人はコードのこの部分に精通しています
[self.ACAstore requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
それでおしまい。アカウント フレームワークに読み取り権限を付与するよう求めています。しかし、アプリを再起動するたびにその許可を求めるのに長い時間を費やしたくありません。
しかし、それには時間がかかります。トークンを使用して高速化したい。
しかし、すでに許可が与えられている場合はどうなりますか? アカウント フレームワークはそれを把握して、より迅速にアクセス許可を付与できませんでしたか?
ほとんどの場合、使用する必要があります
- (void)renewCredentialsForAccount:(ACAccount *)account completion:(ACAccountStoreCredentialRenewalHandler)completionHandler
renewCredentialsForAccount の問題は、一部の人が複数の Facebook アカウントを持っている可能性があることです。どのアカウントが選択されているかを知る方法、または ACAccount オブジェクトを取得する方法は、
requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
これは私が避けたいことです。