Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Google API Objective-C客户端库:Youtube上传至';主账户';_Ios_Objective C_Youtube Api_Google Api - Fatal编程技术网

Ios Google API Objective-C客户端库:Youtube上传至';主账户';

Ios Google API Objective-C客户端库:Youtube上传至';主账户';,ios,objective-c,youtube-api,google-api,Ios,Objective C,Youtube Api,Google Api,场景 我有一个iOS应用程序,它使用Google API Objective-C客户端库,使用OAuth2身份验证上传到用户的Youtube帐户 有一个上传到“主帐户”并避免任何用户登录的更改请求。此“主帐户”将是iOS应用程序中所有视频的集合 问题1 暂时把安全、配额和责任问题放在一边,这可能吗 对于上载,似乎需要身份验证,客户端库不支持应用程序密钥身份验证(或服务帐户) 问题2 这是可以通过原始http请求实现的吗?如果技术上不可能的话,我宁愿不深入研究将该功能添加到Google客户端库中

场景

我有一个iOS应用程序,它使用Google API Objective-C客户端库,使用OAuth2身份验证上传到用户的Youtube帐户

有一个上传到“主帐户”并避免任何用户登录的更改请求。此“主帐户”将是iOS应用程序中所有视频的集合

问题1

暂时把安全、配额和责任问题放在一边,这可能吗

对于上载,似乎需要身份验证,客户端库不支持应用程序密钥身份验证(或服务帐户)

问题2

这是可以通过原始http请求实现的吗?如果技术上不可能的话,我宁愿不深入研究将该功能添加到Google客户端库中

注意


我想直接打电话给谷歌,避免任何中间服务器。

虽然这是可能的,但这是一种非常快速的失败方式。您必须以某种形式向客户端分发刷新令牌。这是一件非常糟糕的事情,因为有人可以很容易地提取这个令牌并使用它来完成您的配额。此外,如果有人这样做,您将不得不使刷新令牌失效并更新,这通常意味着应用程序更新(除非您让应用程序从第三方服务器下载刷新令牌,您正试图避免)。通过原始HTTP或screenscraping使用API时,您也会遇到同样的问题,因为您需要分发您的电子邮件和密码-帐户可能会被标记

这忽略了所有明显的配额问题,人们上传坏视频和禁止你的帐户,以及所有这些好处

一般来说,我会避免这种做法,并在主帐户上使用播放列表,但如果你愿意冒险,你有两种选择:

  • 创建一个中间服务器。此服务器负责获取访问令牌,并将其返回给客户端。客户端至少不能访问刷新令牌,但恶意客户端可以使用访问令牌造成同样多的破坏
  • 使用中间服务器存储视频,然后您可以将自己的速率限制作为附加层,以防止您的应用程序被恶意用于攻击您

  • 虽然这是可能的,但这是一种很快就会失败的方式。您必须以某种形式向客户端分发刷新令牌。这是一件非常糟糕的事情,因为有人可以很容易地提取这个令牌并使用它来完成您的配额。此外,如果有人这样做,您将不得不使刷新令牌失效并更新,这通常意味着应用程序更新(除非您让应用程序从第三方服务器下载刷新令牌,您正试图避免)。通过原始HTTP或screenscraping使用API时,您也会遇到同样的问题,因为您需要分发您的电子邮件和密码-帐户可能会被标记

    这忽略了所有明显的配额问题,人们上传坏视频和禁止你的帐户,以及所有这些好处

    一般来说,我会避免这种做法,并在主帐户上使用播放列表,但如果你愿意冒险,你有两种选择:

  • 创建一个中间服务器。此服务器负责获取访问令牌,并将其返回给客户端。客户端至少不能访问刷新令牌,但恶意客户端可以使用访问令牌造成同样多的破坏
  • 使用中间服务器存储视频,然后您可以将自己的速率限制作为附加层,以防止您的应用程序被恶意用于攻击您

  • 谢谢,这也是我的分析,我只是想确保我没有遗漏一些明显的东西。谢谢,这也是我的分析,我只是想确保我没有遗漏一些明显的东西。