我创建了一个新项目并启用了YouTube Data API v3。在API访问窗格中,我创建了用于浏览器应用程序(带有引用程序)的密钥,这样做很好。我继续创建了iOS应用程序的密钥(带有包标识符)。一切看起来都很好我已经检查了捆绑ID 10次,我确信它是正确的。但是,如果我继续使用iOS API密钥从我的iOS应用程序创建NSURLRequest,我会得到错误响应:
error = {
code = 403;
errors = (
{
domain = usageLimits;
message = "Access Not Configured";
reason = accessNotConfigured;
}
);
message = "Access Not Configured";
};
}
使用相同的网址只传递我的密钥用于浏览器应用程序(与引用者)工作没有任何问题。
NSString *string=[NSString stringWithFormat:@"https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=%@&fields=items(id,snippet(channelId,title,categoryId),statistics(viewCount))&part=snippet,statistics",key];
我真的很困惑这里的问题是什么,我一直试图让它与iOS app关键时刻一起工作。有什么明显的东西我不见了吗?
答案 0 :(得分:7)
如果您正在从任何应用程序(iOS或其他)发出原始HTTP请求,那么您可以将“浏览器应用程序的密钥”包含为key=
URL参数,它应该足够了(至少对于读取来说) - 只有非认证的电话)。
答案 1 :(得分:1)
如果您将API限制为iOS应用程序,则必须在请求的标头上包含捆绑包ID和参数x-ios-identifier-bundle-identifier
https://groups.google.com/forum/#!topic/google-cloud-endpoints/I-u3sAUU3Ts
答案 2 :(得分:0)
这似乎有效 - 像完整的www域一样添加为HTTP引用: 铬 - 延伸:// $ {chrome.runtime.id} /