我正在尝试在我的应用中实施 ShareKit ;在 SHKConfig.h 文件中,在需要Twitter应用程序设置的部分中,有一行我应该设置回调网址:
我在Twitter上打开了一个Twitter应用程序并填写了所有字段,但我不清楚应该在Callback URL字段中插入哪些数据:
任何人都可以解释一下吗?
答案 0 :(得分:9)
您在Twitter中的应用程序设置中编写的回调参数将被忽略,您可以编写任何内容,例如:http://www.google.com(任何事情都可以,因为它被忽略)。
当您在#define中添加回调网址时,其值将在所有者授权步骤中发送到Twitter,并将覆盖您之前在Twitter网站中写入的值。很奇怪,我知道。它与this security vulnerability有关。
回调参数是Twitter将在身份验证后发送给用户的URL。在网站而不是应用程序中运行时,URL回调用于恢复对OAuth流的控制。
在应用程序上,您可以将其设置为自定义方案,例如myapplication:// twitter,然后在应用程序中注册方案myapplication。这样,在身份验证之后,在UIWebView或Safari中运行的Twitter网站将启动该iOS,iOS知道该URL已分配给您的应用程序,这就是您恢复OAuth流控制的方式。
这就是理论,我不确切知道ShareKit是如何工作的。可能是它在UIWebView上运行身份验证并检测用户的活动以手动恢复控制,这是另一种方法。
答案 1 :(得分:1)
我正在使用新版本的ShareKit,并且在源代码中有关于twitter的回调的评论:
回调网址'应与您输入的内容相匹配 SHKTwitterCallbackUrl。回调网址不一定是实际的 现有网址。用户永远不会得到它,因为ShareKit 在重定向用户之前拦截它。它只需要匹配。
我在Twitter设置回调网址设置为http://somecallbackurl.com,在源代码中设置相同,它就像一个魅力! :]。希望这有帮助。
答案 2 :(得分:0)
您可以使用此
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
}