1

我目前正在使用 Vimeo API 并遵循设置过程和此处找到的引导自述文件:

https://github.com/vimeo/VimeoNetworking

我所做的只是从 Vimeo 拉下公开可用的视频,除非我收到了

致命错误:会话管理器未返回任务:文件

其他一切正常,我可以使用自己的令牌进行身份验证。

这是我现在抛出此错误的代码:

我做错了什么或错过了什么?

let queryURL = URL(string: "/channels/staffpicks/videos")
        let videoRequest = Request<[VIMVideo]>(path: queryURL!.absoluteString)
        guard let sessionClient = _client else {
            return []
        }

        let _ = sessionClient.request(videoRequest, completion: {
            results in
            switch results {
            case .success(let response):
                let videos: [VIMVideo] = response.model

                for video in videos
                {
                    print("retrieved video: \(video)")
                }

                vVideo = videos

                break
            case .failure(let error):
                print(error.localizedDescription)

                break
            }
        })
4

1 回答 1

2

对不起,我迟到了,但这对我有用(使用 Swift 4.2):

let appConfiguration = AppConfiguration(
        clientIdentifier: Constants.VIMEO_CLIENT_IDENTIFIER,
        clientSecret: Constants.VIMEO_CLIENT_SECRET,
        scopes: [.Public], keychainService: "")
let vimeoSessionManager = VimeoSessionManager.defaultSessionManager(
        baseUrl: VimeoBaseURL,
        accessToken: Constants.VIMEO_ACCESS_TOKEN,
        apiVersion: "3.4")
let vimeoClient = VimeoClient(
        appConfiguration: appConfiguration,
        sessionManager: vimeoSessionManager)
let videoRequest = Request<[VIMVideo]>(path: "/videos?query=dragon+ball")
vimeoClient.request(videoRequest) {
        result in
        switch result {
        case .success(let response):
            let videos: [VIMVideo] = response.model
            print("\n\n retrieved videos: \(videos) \n\n")
        case .failure(let error):
            print("\n\n error retrieving videos: \(error) \n\n")
        }
    }

我几乎可以肯定您需要添加一个会话管理器,但不是 100%,因为还没有看到您如何初始化客户端和其他变量,所以我只是添加了这个示例。

  • 请记住在 [ https://developer.vimeo.com/apps][1]中获取 clientIndentifier、clientSecret 和 accessToken (在您创建应用程序之后)。

  • 这是使用公共 accessToken,如果您需要经过身份验证的访问,只需将 .Private 和 .Interact 范围添加到 appConfiguration 中的范围数组,并获取“经过身份验证”的 accessToken。

  • 另外,请注意我使用“/videos?query=dragon+ball”作为示例。

于 2019-06-13T15:47:17.330 回答