8

I am working on an app where I have to use Yahoo account to login. I had gone through this link and followed the procedure as it was there.But I am unable to get back to my app after authentication.After googling I found an answer here.Here he said that "Add an URL Scheme in your info.plist file with the YOUR_APP_ID_OR_BUNDLE_ID" I did the same,but unable to redirect from yahoo to my app.If any one worked on this please help me.Thanks in advance.

This is what I had done in my URL Schemesenter image description here

where JCzOzd44 is my app ID.

In yahoo account while creating the app.what should I give in "Application Domain"

enter image description here

4

2 回答 2

5

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

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

其中“com-mycompany-myapp”是您的捆绑包标识符

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

在您的代码中

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

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

感谢您提供这些宝贵的信息。按照您的指示,我得到了身份验证和回调工作,并且 php 页面加载了应用程序。

于 2013-10-02T10:52:19.343 回答
5

我还没有使用过Yahoo! API,但oauth它的工作原理是这样的:

  • 在您的应用程序中创建一个 url 方案。您可以在项目设置(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://"

当然,请求应该签名。

于 2013-09-30T10:29:36.403 回答