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

时间:2013-09-30 09:25:02

标签: iphone ios objective-c yahoo yahoo-api

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

这就是我在网址方案enter image description here

中所做的

其中JCzOzd44是我的应用ID。

在创建应用程序时在yahoo帐户中。我应该在“应用程序域”中给出什么

enter image description here

2 个答案:

答案 0 :(得分:5)

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

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

  • 在对应用进行身份验证时,您可以传递名为oauth_callback 的参数。在这里,你必须传递刚创建的url方案的名称。

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

<强>更新

来自Yahoo! API documentation - 这是您在代码中某处请求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://"

当然应该签署请求。

答案 1 :(得分:5)

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

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

“com-mycompany-myapp”是您的包标识符

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

在您的代码中

[self.session sendUserToAuthorizationWithCallbackUrl:@"http://yourdomain.com/YRedirect.php"];

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

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