Мне нужно зарегистрировать мое приложение для использования API календаря Outlook. Я создал приложение здесь: https://apps.dev.microsoft.com. У меня есть идентификатор приложения и URL-адрес перенаправления. Тогда я использовал следующий метод, чтобы получить маркер:Azure AD ADAuthenticationError 15 - unauthorized_client - Приложение не поддерживается для этой версии API
[self.context acquireTokenWithResource:resourceID
clientId:clientID
redirectUri:redirectURI
completionBlock:^(ADAuthenticationResult *result) {
if (result.status !=AD_SUCCEEDED){
completion(result.error);
}
else{
self.accessToken = result.accessToken;
self.refreshToken = result.tokenCacheStoreItem.refreshToken;
self.familyName = result.tokenCacheStoreItem.userInformation.familyName;
self.givenName = result.tokenCacheStoreItem.userInformation.givenName;
self.userID = result.tokenCacheStoreItem.userInformation.userId;
completion(nil);
}
}];
И получил эту ошибку:
Error with code: 15 Domain: ADAuthenticationErrorDomain ProtocolCode:unauthorized_client Details:AADSTS70001: Application '***' is not supported for this API version.
Trace ID: c5286e11-9fa9-4ddd-96a4-a29ddd6b416c
Correlation ID: c608d556-729b-4cad-80be-24d85f5558d4
Timestamp: 2016-03-14 13:05:11Z. Inner error details: Error Domain=ADAuthenticationErrorDomain Code=15 "The operation couldn’t be completed. (ADAuthenticationErrorDomain error 15.)"
Пожалуйста, помогите мне зарегистрировать мое приложение правильно
UPDATE: @dstrockis помог с Эта проблема. Но теперь у меня есть один еще: Там https://cocoapods.org/pods/ADALiOS используется метод
[authContext acquireTokenWithResource:resourceId
clientId:clientId
redirectUri:redirectUri
completionBlock:^(ADAuthenticationResult *result) {
if (AD_SUCCEEDED != result.status){
// display error on the screen
[self showError:result.error.errorDetails];
}
else{
completionBlock(result.accessToken);
}
}];
Но библиотека ADALiOS, 3.0.0-pre3 не содержит этот метод. Я пытался использовать
- (void)acquireTokenWithScopes:(NSArray*)scopes
additionalScopes:(NSArray*)additionalScopes
clientId:(NSString*)clientId
redirectUri:(NSURL*)redirectUri
identifier:(ADUserIdentifier*)identifier
promptBehavior:(ADPromptBehavior)promptBehavior
completionBlock:(ADAuthenticationCallback)completionBlock;
И я получил следующее сообщение об ошибке: "Ошибка с кодом: 17 Домен: ADAuthenticationErrorDomain ProtocolCode: (нуль) Подробности:. Приложение не имеет текущий ViewController Внутренние детали ошибки: Ошибка домена = ADAuthenticationErrorDomain Code = 17 «Операция не может быть выполнена. (Ошибка ADAuthenticationErrorDomain 17.) "".
Это правильный метод использования. Я посмотрю, смогу ли я заставить парня iOS прокомментировать эту конкретную ошибку. Вы должны вызвать этот метод в контексте ViewController, чтобы adal мог вывести веб-представление для выполнения проверки подлинности. – dstrockis
@dstrockis, я назвал его в моем контроллере View, в методе ViewDidLoad Предыдущий метод «приобретатьTokenWithResource» Я также позвонил туда, и был указан диспетчер авторизации – Anna
@dstrockis, вам что-то узнать об этой проблеме? На самом деле это был длинный ряд для мотыги, поэтому, если вы или ваш парень iOS могли бы помочь, было бы очень благодарно :) –