2015-03-17 2 views
0

Я использую FlickrKit, чтобы попытаться войти в мою учетную запись Flickr для iOS (симулятор iPhone 5).Проверка подлинности с помощью FlickrKit для iOS

A) я указал следующее за [[FlickrKit sharedFlickrKit] initializeWithAPIKey:] - Flickr Key - Flickr Секретный

B) Тогда я назвал [[FlickrKit sharedFlickrKit] beginAuthWithCallbackURL:] - где обратного вызова URL это @ "MyTestApp: // auth". - «MyTestApp» определен в URL-адресах -> Пункт 0 -> Схемы URL-адреса -> Пункт 0.

C) К сожалению, после входа в систему я получаю эту ошибку при попытке входа в систему с помощью FlickrKit для iOS.

«Внешнее приложение не попросил ссылку на свою учетную запись, но не удалось включить всю необходимую информацию, конкретно:.»

(тогда я вижу черную полосу, так что у меня нет идея, какова конкретная ошибка).

Смотрите скриншот ниже:

enter image description here

Любые идеи?

+0

Нужно ли указывать «Идентификатор URL»? – AlvinfromDiaspar

+0

Я столкнулся с такой же проблемой на Android, вы выяснили причину? – d34th4ck3r

ответ

1

Вам нужно дважды нажать кнопку «ОК, ILL AUTHORIZE IT», когда эта черная полоса появляется во второй раз?

Я верю, что вы выбрали кнопку «авторизовать», которая затем отправляет обратный вызов вашему приложению, но когда вы снова выбираете эту кнопку, Flickr думает, что вы пытаетесь использовать дублированный токен аутентификации и не разрешаете его ,

Как быстро проверить, реализовать этот метод в делегат своего приложения: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

Затем бросить NSLog туда, чтобы увидеть, что URL-адрес является то, что в настоящее время передается. Вероятно, вы получите данные, которые искали.

Сегодня я столкнулся с этой проблемой и был невероятно расстроен ею.

+0

Спасибо! Я добавил 2 цента на всякий случай для следующего парня! –

0

Так что для последней версии стрижа я должен был сделать следующее:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { 
    if (url.host == "oauth-callback") { 
     OAuth1Swift.handleOpenURL(url) 
    } 
    return true 
} 

Кроме того, мой PLIST необходимо следующее:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>my.bundle.id</string> 
      <string>oauth-swift</string> 
     </array> 
     <key>CFBundleURLName</key> 
     <string></string> 
    </dict> 
</array> 

Но это потому, что я использовал следующую библиотеку: https://github.com/dongri/OAuthSwift

0

Это наступает через год. Я смог заставить его работать, убедившись, что все info.plist было хорошо сконфигурировано (с правильными схемами. Предыдущий dev удалил его. Но в то же время он отлично работал.), А также I override функция в моем классе AppDelegate. func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool и сделал это

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
    print("DictionaryScheme: ", url.scheme!) 
    if url.scheme == "schemename" { 
     NotificationCenter.default.post(name: Notification.Name(rawValue: "UserAuthCallbackNotification"), object: url) 
     return true 
    } 
    return false 
}