iOS: ShareKit >> Настройки Twitter >> URL обратного вызова --- Что это? - PullRequest
3 голосов
/ 20 июля 2011

Я пытаюсь реализовать ShareKit в моем приложении; в файле SHKConfig.h в разделе, где требуются настройки приложений Twitter, есть строка, в которой я должен установить URL обратного вызова : enter image description here

Я открыл приложение Twitter в Twitter и заполнил там все поля, но мне неясно, какие данные следует вставить в поле URL обратного вызова: enter image description here

Может кто-нибудь объяснить?

Ответы [ 3 ]

9 голосов
/ 20 июля 2011

Параметр обратного вызова, который вы пишете в настройках своего приложения в Twitter, игнорируется, вы можете написать что угодно, например: http://www.google.com (что угодно, так как оно игнорируется).

Когда вы добавляете URL обратного вызова в #define, его значение будет отправлено в твиттер на шаге авторизации владельца и переопределит значение, которое вы ранее написали на веб-сайте Twitter. Странно, я знаю. Это связано с этой уязвимостью безопасности .

Параметром обратного вызова является URL, который Twitter отправит пользователю после аутентификации. При работе на веб-сайтах вместо приложений обратный вызов URL используется для восстановления контроля над потоком OAuth.

В Приложениях вы можете настроить его на собственную схему, такую ​​как myapplication: // twitter, а затем зарегистрировать схему myapplication в своем приложении. Таким образом, после аутентификации веб-сайт Twitter, работающий в UIWebView или Safari, запускает этот URL-адрес, который, как известно iOS, назначен вашему приложению, и таким образом вы восстанавливаете контроль над потоком OAuth.

Это теория, я не знаю точно, как работает ShareKit. Может случиться так, что он запускает аутентификацию на UIWebView и обнаруживает активность пользователя по восстановлению управления вручную, что является еще одним способом сделать это.

1 голос
/ 04 апреля 2012

Я использую новую версию ShareKit, и в источниках есть этот комментарий о обратном вызове для твиттера:

URL обратного вызова 'должен совпадать с тем, что вы вводите в SHKTwitterCallbackUrl.URL обратного вызова не должен быть фактическим существующим URL.Пользователь никогда не доберется до него, потому что ShareKit перехватывает его до того, как пользователь будет перенаправлен.Он просто должен совпадать.

Я установил в настройках твиттера URL-адрес обратного вызова, как http://somecallbackurl.com,, установив его в источниках, и он работает как шарм!:].Надеюсь, что это поможет.

0 голосов
/ 03 марта 2017

Вы можете использовать это

func application(_ application:UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool { print("called") let directedByTWTR = Twitter.sharedInstance().application(application, open: url, options: options) return directedByTWTR }

...