2

製品パスから製品 ID を取得できますが、サンドボックスにリクエストを投稿して乗車をスケジュールしようとすると、このエラーが発生します。ここで私が間違っていることを理解しようとしています。ベアラー トークンを追加しました。何が欲しいのか、何が欠けているのかわかりません。

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x7f8c13939ed0 {NSErrorFailingURLStringKey=https://sandbox-api.uber.com/v1/requests, NSUnderlyingError=0x7f8c0ac78410 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)", NSErrorFailingURLKey=https://sandbox-api.uber.com/v1/requests}

func performPostUberRequest(url: NSURL, prodId: String) {
    let params:[String: AnyObject] = [
        "start_latitude" : "39.955715",
        "start_longitude" : "-75.1680298",
        "end_latitude" : "39.9542675",
        "end_longitude" : "-75.1409609",
        "product_id": prodId
    ]

    var error: NSError?
    var request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "POST"
    request.addValue("Bearer \(uberToken)", forHTTPHeaderField: "Authorization")
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.allZeros, error: &error)
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()){
        response, data, error in
        if let error = error {
            println(error)
        } else if data != nil {
            if let json: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSDictionary {
                println(json)
            }
        }
    }
}
4

1 に答える 1

1

あなたのコメントによると: { code = unauthorized; message = "Missing scope: request"; }、スコープを見逃す可能性があります。これは、アプリを登録し、シークレットとクライアント ID などを取得した Uber 開発者ダッシュボードで指定できます。

これを行った場合は、要求時authorization codeおよび最初access tokenに必要なスコープをパラメーターに追加する必要がありますOAuth2.0

私の実装では、スコープは次のように指定されました。

[[NXOAuth2AccountStore sharedStore] setClientID:_clientID
                                         secret:_clientSecret
                                          scope:[NSSet setWithObjects:@"request", @"history_lite", @"profile", @"request_receipt", nil]
                               authorizationURL:[NSURL URLWithString:@"https://login.uber.com/oauth/authorize"]
                                       tokenURL:[NSURL URLWithString:@"https://login.uber.com/oauth/token"]
                                    redirectURL:[NSURL URLWithString:_redirectURL]
                                  keyChainGroup:nil
                                 forAccountType:_applicationName];
于 2015-08-28T01:17:30.013 に答える