【问题标题】:I am trying to get apple music user token我正在尝试获取苹果音乐用户令牌
【发布时间】:2018-05-14 13:23:59
【问题描述】:

这是我获取用户令牌的代码

 NSString *developerToken = @"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlVaMzI1Q0MyMkcifQ.eyJpc3MiOiJEWjI4TDk1OFBCIiwiaWF0IjoxNTI1MjY1NjE0LCJleHAiOjE1Mzg0Mzg0MDB9.frMVLzCx3oaUyqcBzZvSoB60LjCrtqmiCwf-ouQ1Y12UYpW5w8R-cmAX6N_Fwpz_l5CFe3OkYP3uET7uCPvyOw";
    [SKCloudServiceController requestAuthorization:^(SKCloudServiceAuthorizationStatus status) {
        self->cloudServiceController = [[SKCloudServiceController alloc] init];
        [self->cloudServiceController requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {
            [self->cloudServiceController requestStorefrontIdentifierWithCompletionHandler:^(NSString * _Nullable storefrontIdentifier,
                                                                                             NSError * _Nullable error) {
                NSString *identifier = [[storefrontIdentifier componentsSeparatedByString:@","] firstObject];
                identifier = [[identifier componentsSeparatedByString:@"-"] firstObject];
                if (@available(iOS 11.0, *)) {
                    [self->cloudServiceController requestUserTokenForDeveloperToken:developerToken completionHandler:^(NSString * _Nullable userToken, NSError * _Nullable error) {
                        NSLog(@"%@",error);
                        NSLog(@"%@",userToken);
                    }];
                } else {
                    // Fallback on earlier versions
                }
                //NSString *countryCode = [self countryCodeWithIdentifier:identifier];
            }];

        }];
    }];

但我得到的 userToken 为 nil,错误为

"错误域=SKErrorDomain 代码=7"(null)" UserInfo={NSUnderlyingError=0x1c08437b0 {错误域=SSErrorDomain 代码=109 "(null)" UserInfo={NSUnderlyingError=0x1c08437e0 {错误 Domain=SSErrorDomain Code=109 "无法连接到 iTunes Store" UserInfo={NSLocalizedDescription=无法连接到 iTunes Store, SSErrorHTTPStatusCodeKey=401}}}}}"

我做错了什么?请帮忙

【问题讨论】:

  • 对我来说同样的问题,使用有效的开发人员令牌。你找到解决办法了吗?
  • 不,还没有
  • 你找到解决办法了吗?

标签: ios objective-c apple-music


【解决方案1】:

就我个人而言,问题在于没有订阅 Apple Music;我遇到了同样的错误(“Error Domain=SKErrorDomain Code=7”)。

解决此问题的一种方法是检查用户是否拥有 Apple Music 帐户。 为此(通过 Apple 文档)

斯威夫特

controller.requestCapabilities {(capabilities: SKCloudServiceCapability, error: Error?) in
   guard error == nil else { return }
   if capabilities.contains(.musicCatalogPlayback) {
      // CASE WHERE USER HAS APPLE MUSIC SUBSCRIPTION
      // GET USER TOKEN HERE
   } 
}

Objective-C

[controller requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError *error){
    if (error != nil) {
        // Handle error.
    } else if (capabilities & SKCloudServiceCapabilityMusicCatalogPlayback) {
         // CASE WHERE USER HAS APPLE MUSIC SUBSCRIPTION
         // GET USER TOKEN HERE
    }
}];

【讨论】:

    【解决方案2】:

    错误代码SSErrorHTTPStatusCodeKey=401 通常表示它是未经授权的请求,这向我表明您的开发人员令牌无效。您确定这是一个格式正确、未过期的开发者令牌吗?

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 1970-01-01
      • 2018-06-29
      • 2021-02-09
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多