PayPalのiOS SDKでプロファイル共有オプションを正常に実装しました。 ユーザーがアプリのPayPalアカウントにログインすると、適切なコードを取得しています。 私はとユーザー情報を取得しようとしましたコマンドが成功しました。iOSのAPIコールを使用してPayPalリフレッシュトークンを取得する方法
今、私は第2ステップと第3ステップをAPI呼び出しで実装したいと考えています。
以下は、PayPalサーバーから更新トークンを取得するために実装したものです。
func getTheRefreshToken(authToken:NSString) {
print("Token \(authToken)")
let urlPath: String = "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice"
let url: NSURL = NSURL(string: urlPath)!
let request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
let basicAuthCredentials: String = "AXvaZH_Bs9**CLIENTID**0RbhP0G8Miw-y:ED_xgio**SECRET**YFwMOWLfcVGs"
let plainData = (basicAuthCredentials as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let base64String = "Basic \(plainData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)))"
request.HTTPMethod = "POST"
let params = ["grant_type":"authorization_code","redirect_uri":"urn:ietf:wg:oauth:2.0:oob", "authorization_code":authToken as String] as Dictionary<String, String>
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.addValue(base64String, forHTTPHeaderField: "Authorization")
request.timeoutInterval = 60
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(params, options: [])
request.HTTPShouldHandleCookies=false
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse?, data: NSData?, error: NSError?) in
let refreshResponse = NSString(data: data!, encoding: NSISOLatin1StringEncoding)
print("Response \(refreshResponse!)")
}
}
grant_typeでnullになるたびにエラーが発生します。あなたのクライアントの秘密は、セキュリティ上の理由から、クライアント側に保存されていてはいけません
エラー
Response {"error_description":"Grant type is null","error":"invalid_grant","correlation_id":"e5d4cc9c47d21","information_link":"https://developer.paypal.com/docs/api/#errors"}
私はすでにcurlコマンドを実行しており、正しい結果を得ています。私はちょうどサーバー側の統合をスキップしたい。私はすでに問題を解決しました。ご協力いただきありがとうございます :) – Hiren