如何在身份验证后从Yahoo重定向到我的IOS应用程序?

iSw*_*oop 8 iphone yahoo objective-c ios yahoo-api

我正在开发一个应用程序,我必须使用雅虎帐户登录.我已经通过这个链接并按照程序进行操作.但是我无法在认证后回到我的应用程序.谷歌搜索后我这里找到了答案.他说"在你的info.plist中添加一个URL方案文件与YOUR_APP_ID_OR_BUNDLE_ID"我做了同样的,但无法从雅虎重定向到我的应用程序.如果任何人工作,请帮助我.谢谢提前.

这就是我在URL Schemes中所做的在此输入图像描述

其中JCzOzd44是我的应用ID.

在创建应用程序时在yahoo帐户中.我应该在"应用程序域"中给出什么

在此输入图像描述

The*_*Eye 5

我没有使用它Yahoo! API,但oauth它的工作原理如下:

  • 在您的应用中创建网址方案.您可以在项目设置的"信息"部分(URL类型)中执行此操作.根据需要为方案命名,例如您的应用程序ID.

  • 验证应用程序时,可以传递名为的参数oauth_callback.在这里,您必须传递刚创建的url方案的名称.

这应该是它 - 当雅虎方面的登录正常时,​​它将尝试打开为其获得的url方案注册的应用程序作为回调参数.

更新:

来自雅虎!API文档 - 这是您在代码中的某处请求oauth令牌时执行的调用(我将您的url方案填充为回调,这应该是它的样子):

https://api.login.yahoo.com/oauth/v2/  
  get_request_token?oauth_nonce=ce2130523f788f313f76314ed3965ea6  
  &oauth_timestamp=1202956957  
  &oauth_consumer_key=123456891011121314151617181920  
  &oauth_signature_method=plaintext  
  &oauth_signature=abcdef  
  &oauth_version=1.0  
  &xoauth_lang_pref="en-us"  
  &oauth_callback="JCzOzd44://"
Run Code Online (Sandbox Code Playgroud)

当然应该签署请求.


iSw*_*oop 5

虽然有一点开销,但我找到了解决方案.步骤如下:1>在您自己的服务器中创建一个PHP脚本(比如命名为YRedirect.php).2>将以下代码粘贴在其中 -

CODE
<?php
$query = $_SERVER['QUERY_STRING'];
header("Location: com-mycompany-myapp://oauth-response?" . $query);
>
Run Code Online (Sandbox Code Playgroud)

"com-mycompany-myapp"是您的包标识符

3>使用YOUR_APP_ID_OR_BUNDLE_ID在info.plist文件中添加URL方案.就是这样,你就完成了身份验证问题.

在你的代码中

[self.session sendUserToAuthorizationWithCallbackUrl:@"http://yourdomain.com/YRedirect.php"];
Run Code Online (Sandbox Code Playgroud)

然后,从Info.plist文件中为您的iPhone应用程序注册自定义URL方案,然后设置服务器端脚本,通过您刚设置的URL方案将Safari重定向回应用程序.

感谢您提供有价值的信息.按照你的指示,我得到了auth和回调工作,php页面加载了应用程序.