在 Youtube api 中创建播放列表

2023-12-09

我看过 Youtube 的文档,但我似乎不明白如何为用户专门为 ios 创建播放列表。我知道用户需要使用 OAuth 2 登录来授予应用程序访问/权限来创建播放列表

文档链接:https://developers.google.com/youtube/v3/sample_requests#uploaded_videos

但随后给出了这段代码:

POST {base_URL}/playlists?part=snippet
 Request body:
{
'snippet': {
  'title': 'New playlist', 
  'description': 'Sample playlist for Data API',
 }
}

我不知道如何将其翻译为在 ios 上工作。我如何在目标 c 中反映请求主体对象?

- - - -更新 - - - 它只是使用 NSURLSessionUploadTask 吗?所以我可以发送一个发布请求,并发送一个请求正文的字典?抱歉,对于 IOS 领域来说有点陌生


这里是更新!

Google 的客户端库已更新。

文档:YouTube 数据 API 概述

播放列表文档:播放列表:插入

GitHub 客户端库:适用于 REST Objective-C 的 Google API 客户端库

以下是需要安装的 Pod:

pod 'GTMSessionFetcher'
pod 'GTMOAuth2'
pod 'GoogleAPIClientForREST/YouTube’

如果我们认为我们有 clientID、clientSecret 和范围(阅读文档),那么我们可以创建 viewController 进行身份验证:

GTMOAuth2ViewControllerTouch *viewController = [[GTMOAuth2ViewControllerTouch alloc]
                                                    initWithScope:scope
                                                    clientID:kMyClientID
                                                    clientSecret:kMyClientSecret
                                                    keychainItemName: nil
                                                    completionHandler:
                                                    ^(GTMOAuth2ViewControllerTouch *viewController, GTMOAuth2Authentication *auth, NSError *error) {
                                                        [self dismissViewControllerAnimated:NO completion:nil];
                                                        if (!error)
                                                        {
                                                            GTLRYouTubeService *youTubeService = [[GTLRYouTubeService alloc] init];
                                                            youTubeService.authorizer = auth;
                                                            [self createPlaylistWithTitle: @"Title" description: @"description" youtubeService: youtubeService];
                                                        }
                                                    }];
[self presentViewController:viewController animated:YES completion:nil];

创建私有播放列表的方法:

- (void)createPlaylistWithTitle:(NSString *)playlistTitle description:(NSString *)playlistDescription youtubeService:(GTLRYouTubeService *)youTubeService
{
    GTLRYouTube_Playlist *playlist = [[GTLRYouTube_Playlist alloc] init];

    GTLRYouTube_PlaylistSnippet *playlistSnippet = [[GTLRYouTube_PlaylistSnippet alloc] init];
    playlistSnippet.title = playlistTitle;
    playlistSnippet.descriptionProperty = playlistDescription;

    GTLRYouTube_PlaylistStatus *playlistStatus = [[GTLRYouTube_PlaylistStatus alloc] init];
    playlistStatus.privacyStatus = @"private";

    playlist.snippet = playlistSnippet;
    playlist.status = playlistStatus;

    GTLRYouTubeQuery_PlaylistsInsert *query = [GTLRYouTubeQuery_PlaylistsInsert queryWithObject:playlist part:@"snippet,status"];
    [youTubeService executeQuery:query completionHandler:^(GTLRServiceTicket *ticket, id object, NSError *error) {
        if (!error)
        {
            NSLog(@"response: %@", object);
        }
    }];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Youtube api 中创建播放列表 的相关文章

  • ViewController.swift(界面)文件的用途是什么 - 在 Counterparts 中

    我刚刚注意到一个名为ViewController swift Interface 当我创建第一个 ViewController 时 Xcode 自动创建了它 Swift 中的类是否具有 需要与 Objective C 中相同的接口 并且由
  • ipatool 失败并出现异常:#

    将 Xcode 升级到 9 0 1 版本后 在我的项目之一中导出为 iPA 时 我遇到错误 ipatool 失败 出现异常 NoMethodError undefined method toolsPath for nil NilClass
  • GKLocalPlayer 身份验证不起作用,但 isAuthenticated 返回 YES(游戏中心沙盒)

    我正在努力将回合制比赛集成到我的游戏中 几天前 我开始从 GameKit API 收到奇怪的错误 指出本地玩家未经过身份验证 尽管他已通过身份验证 当我启动应用程序时 authenticateHandler被调用 显示视图控制器 输入密码后
  • 解雇ViewControllerAnimated:完成:在 iOS 8 上

    在 iOS dismissViewControllerAnimated completion 会导致presentedViewController being nil 在 iOS 8 中 presentedViewController仍然指
  • 在 IOS 设备上制作动画时,2 个相互堆叠的动画元素会发生变化(z 索引位置)吗?

    JSFIDDLE http fiddle jshell net 6gdrQ 18 我有 2 个动画元素 一种是简单的旋转脚本 它像硬币一样旋转徽标的中间部分 另一个动画是中间部分翻转时您看到的徽标后面的粒子画布烟雾动画 我遇到的问题是画布烟
  • object_setClass()而不是分配isa指针的性能

    我注意到在 XCode 4 6 的最新更新中 我收到了关于以下几行的警告JSONKit m 具体来说 设置对象类的行 dictionary gt isa JKDictionaryClass 这些被标记为已弃用 并注明首选方法是使用objec
  • Swift 和 Objective-C 框架公开其内部结构

    我正在尝试将 Swift 添加到具有公共 私有和项目文件的现有 Objective C 框架中 为了让 Swift 能够访问项目文件 我添加了一个定义新模块的模块映射 例如MyFramework Internal 通过包含所有项目标题 如下
  • 在 iOS safari 中禁用选择上下文菜单

    我想禁用在 iOS Safari 网络浏览器 中选择特定文本后出现的默认上下文菜单 那可能吗 这是可能的 请参阅这个例子 http jsfiddle net z9ZNU 基本上 重要的部分是设置正确的 css 属性 body webkit
  • 从 Google/Facebook 帐户重新验证用户身份

    因此 我需要创建一个 REST API 来为 IOS 应用程序提供功能 我们允许用户仅使用普通帐户或使用脸书 谷歌登录 我最近一直在阅读 OAuth 我想我了解在我的情况下如何使用 OAuth 的过程 当用户使用脸书 谷歌登录 在我的应用程
  • 通过 Youtube 数据 API v3.0 管理注释和卡片

    我想知道有没有办法通过 Youtube 数据 API V3 0 管理注释和卡片 YouTube 注释没有官方支持 您可以更新一个频道的元数据 https developers google com youtube v3 docs chann
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • iOS 复合谓词

    我正在编写一个具有照片数据库的应用程序 每张照片都有多个与之关联的标签 并且该应用程序有一个带有大量切换的搜索页面 允许用户仅根据他们感兴趣的标签搜索照片 每个标签都存储了integerID 是因为它们对应于外部数据库的 ID 所以我尝试简
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • 子视图控制器旋转方法未被调用

    Summary 我试图将子视图控制器添加到父视图控制器 并让父视图控制器通知子视图控制器旋转事件 但是 旋转消息不会转发到子视图控制器 这是默认行为 为什么这种默认行为没有发生 环境 iOS 7 XCode 5 OSX 10 9 Detai
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • AVAudioMixerNode pan 或 AVAudioUnitSamplerstereoPan 属性无法更改 AVAudioEngine 声音输出的左/右平衡

    我有以下代码 它播放单个 MIDI 音符 但我希望能够调整平衡 平移 以便它仅从左扬声器或右扬声器或某些组合中播放 我认为更改 sampler stereoPan 或 engine mainMixerNode pan 也许可以解决问题 但它
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • NSURLConnection 是否自动保留从服务器发送的 cookie?

    我从 ios 登录到我的龙卷风后端并发回 secure cookie 我注意到只要验证我设置的 secure cookie 我还可以请求其他信息 NSURLConnection 会保留 cookie 多久 或者关闭应用程序后 cookie
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐

  • 使用 Pandas 将重复项提取到新数据框中

    我有一个包含很多列的大型数据框 其中一列应该是唯一 ID 另一列是年份 不幸的是 唯一 ID 列中有重复项 我知道如何生成所有重复项的列表 但我真正想做的是将它们提取出来 以便仅保留第一个条目 按年份 例如 数据框当前看起来像这样 带有一堆
  • 从 Fortran 运行时 METIS 段错误

    我正在尝试使用METIS用于网格划分的库 作为我为有限元计算编写的 Fortran 程序的一部分 METIS 是用 C 编写的 但它应该可以与 Fortran 90 一起正常工作 但我不断遇到段错误 一个潜在的问题是 我向一些参数提供了空指
  • 如何在单声道下强制应用程序的单实例?

    因此 我能够在 Windows 上强制执行应用程序的单个实例 如下所示 STAThread class method Program Main args array of string begin var mutex new Mutex t
  • 如何从命令行使用特定修订版号“恢复到此修订版”?

    我目前正在制作一个脚本 在其中我已经熟悉了Tortoise SVN 及其相应的命令行功能 我正确更新了脚本 以通过一系列测试找到正确构建的 修订版 在脚本记录该变量 具体的版本号 后 我更新到 HEAD 修订版 这样我就可以在遇到问题的过程
  • Dropwizard 配置文件安全性

    配置文件 yml 用于使用 Dropwizard 0 9 2 最新版本 开发的 REST API api 所需的大部分凭据 例如数据库密码密钥等 都存储在配置文件中 我们已经根据参考文献中提到的项目实现了大部分内容 位于dropwizard
  • Cocos2d如何切换场景

    cocos2d中如何切换场景 我有我的主类 HellowWorldLayer h m 但我似乎无法正确切换场景 我努力了 CCDirector sharedDirector replaceScene Race node And CCDire
  • Javascript:数组加数字[重复]

    这个问题在这里已经有答案了 JavaScript 中的某些操作会返回意外结果 有一个是极其奇怪的 1 1 任何人都可以解释为什么它会这样工作吗 由于 运算符而转换为空字符串 所以 1 gt 1 数字也转换为字符串
  • UnreachableBrowserException 尝试使用 IEDriver 在 Selenium Webdriver 中启动

    我有一套在 Firefox 和 Chrome 中运行得非常出色的自动化功能 并且我还想启动 IEDriver 的实例 我已经按照以下方式设置了 IEDriverSelenium 的 Google 代码 wiki 具有正确的路径 如果我更改路
  • 具有模糊和斜角的 GLPaint 画笔效果

    我正在开发一个基于 GLPaint 代码的绘图应用程序 有人知道如何获得这样的效果吗 我尝试过使用不同的画笔宽度和高度值 但它仍然保持不变 我需要考虑 glBlendFunc 吗 或者彻底改变画笔的宽度和高度是否可以实现 Thanks in
  • C++ 中是否有生产就绪的无锁队列或哈希实现 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我一直在谷歌上搜索 C 中的无锁队列 我找到了一些代码和一些试验 但我无法编译任何东西 无锁哈希也将受到欢迎 概括 到目前为止我还没有得到肯定的答案
  • 如何在命令行中读取浮点数?

    如何在命令行中读取浮点数或整数 test py 11 22 4 11 7 99 9 69 我试过了 numbersList float sys argv 1 len sys argv import sys args map float sy
  • 正则表达式匹配 C# 中的所有大写和下划线

    我需要从字符串中查找仅包含大写字母和下划线的所有单词 string str ABCD EFG LMNO hello world PQR ST UVW US Apple PQR ZYZ PQR LMN ZYZ string pattern A
  • 10.6中如何在Interface Builder中创建NSImageCell的NSMatrix

    如何在 Interface Builder 3 2 1 即为 Snow Leopard 制作的 中创建 NSImageCell 单元格 通常位于 NSImageView 中 的矩阵 NSMatrix 对象 在 过去 您可以拖动 NSImag
  • Spring @Transactional 属性是否适用于私有方法?

    如果我有一个 事务性Spring bean中的私有方法上的注释 注释有什么作用吗 If the Transactional注释位于公共方法上 它可以工作并打开事务 public class Bean public void doStuff
  • 如何绘制堆叠柱类型的 Google 图表

    我有这个表结构 Name Grade Count X VeryGood 10 X Excellent 2 X Failed 0 Y VeryGood 7 Y Excellent 1 Y Failed 2 我想在堆积谷歌图表中显示这些数据 类
  • 使用宏将数据文件导入新选项卡时,如何提示用户选择文件?

    我有一个宏 当前正在创建一个新工作表 并将另一个 Excel 文件导入到这个新工作表中 然后 该工作表中的数据将被拉入工作簿的其他区域 正在导入的文件将始终具有不同的文件名 如何调整以下代码以提示用户选择文件 目录不会改变 子导入需求 工作
  • 使用 pygame 进行 blit opencv 相机捕获会抛出 TypeError:参数 1 必须是 pygame.Surface,而不是 cv2.VideoCapture

    我是 pygame 的新手 以前从未使用过它 想知道如何使用 pygame 和 opencv 将网络摄像头传输或显示到表面 但我不断收到消息 Traceback most recent call last File
  • 在 Android 中裁剪图像并调整其大小

    我正在从磁盘读取图像并将其显示在行中ListView 图像文件比需要在内部显示的文件大ImageView的行 由于我需要缓存bitmaps为了更快的访问 我希望它们只和 RAM 一样大ImageView小号 85x85 倾角 现在我正在阅读
  • 如何获取模型观察者中的current_user?

    给定以下模型 Room id title RoomMembers id room id RoomFeed also an observer 当房间标题更新时 我想创建一个 RoomFeed 项目 显示进行更新的用户是谁 room updat
  • 在 Youtube api 中创建播放列表

    我看过 Youtube 的文档 但我似乎不明白如何为用户专门为 ios 创建播放列表 我知道用户需要使用 OAuth 2 登录来授予应用程序访问 权限来创建播放列表 文档链接 https developers google com yout