我找不到任何关于YouTube API谜题的答案或类似问题,希望有人能帮我。
我的iOS应用程序在其中制作视频,需要连接到用户的YouTube帐户,以便他们可以上传视频供他人观看等。
我遵循了API文档,并设法连接到用户登录其帐户的身份验证部分(我在下面使用的代码)。
它的工作原理是,当用户登录谷歌的登录页面时,该页面会询问用户是否愿意授权应用程序访问帐户等。不过,当用户接受时,我知道应该返回数据,为应用程序提供身份验证和令牌代码,以便稍后在应用程序中上传视频。
我的问题是……如何检索这些数据?当我点击接受时,它只是把我带到另一个网页,但我不知道在哪里检索信息。
提前感谢任何能为我指明正确方向的人。
#define kAuthUrl @"https://accounts.google.com/o/oauth2/auth?"
#define kClientID @"client_id=xxxxxxxxxxxMyUniqueIDDetailsxxxxxxxxxx&"
#define kRediretUri @"redirect_uri=urn:ietf:wg:oauth:2.0:oob&"
#define kScopeUL @"scope=https://www.googleapis.com/auth/youtube.upload&"
#define kResponse @"response_type=code"
上面的代码放在头文件中。
- (void)viewDidLoad
{
NSString *loginURL = [NSString stringWithFormat:@"%@%@%@%@%@", kAuthUrl, kClientID, kRediretUri, kScopeUL, kResponse];
NSURLRequest * urlReq = [NSURLRequest requestWithURL: [NSURL URLWithString:loginURL]];
[_webView loadRequest:urlReq];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
从YouTube API文档中可以看到
使用此值时,应用程序可以检测到页面已加载,并且HTML页面的标题包含授权代码。如果您想确保用户永远看不到包含授权码的页面,则由您的应用程序关闭浏览器窗口。执行此操作的机制因平台而异。
其中"this value"指的是我选择的重定向_uri,而不是本地主机重定向。
我怎么能感觉到用户已经登录到他们的帐户并按下了"接受"按钮,这也让我开始询问如何知道这一点,然后在关闭浏览器时从返回的url中检索代码。
干杯,吉姆。
我强烈建议您使用Google Toolbox for Mac OAuth 2 Controllers项目来处理OAuth 2中集成的所有细节。