OAuth 2.0 ใช้ได้เฉพาะในเอ็นพอยต์ /ads
เมื่อรวมการรายงานคำสั่งซื้อผ่าน API คุณจะต้องรวมเอ็นพอยต์ /orders เข้ากับการตรวจสอบสิทธิ์ขั้นพื้นฐานและคีย์ API ลับของคุณ
รหัสลูกค้าและความลับของลูกค้า
AD_ID client_id
และการ client_secret
จะได้รับจากผู้จัดการบัญชีด้านเทคนิคของคุณ Client Secret เป็นความลับและไม่ควรแชร์
การขอโทเค็นการเข้าถึง
ในการรับโทเค็นการเข้าถึง คุณต้องส่งคำขอที่มี client_id
และ client_secret
ในการทำเช่นนั้น ผู้ค้าปลีกต้องส่งคำขอ POST ไปยังเอ็นพอยต์ CitrusAd Authorization Server:
https://$BASE_URL/v1/oauth2/token
/oauth2/token
ให้เฉพาะโทเค็นที่เกี่ยวข้องเท่านั้น คุณจะใช้โทเค็นเหล่านี้เพื่อโต้ตอบกับเอ็นพอยต์การรวมต่างๆ
คำขอของคุณจะต้องมีการอนุญาตพื้นฐานที่ส่งผ่านส่วนหัวคำขอการอนุญาตที่มี client_id
และ client_secret
base64 ที่เข้ารหัส:
Authorization: "Basic" + base64encode(client_id + ":" + client_secret)
คุณจะต้องเพิ่มพารามิเตอร์ต่อไปนี้โดยใช้ application/x-www-form-urlencoded
รูปแบบในช่องข้อความคำขอของ HTTP:
grant_type=client_credentials
คําขอจะมีลักษณะดังต่อไปนี้:
POST https://$BASE_URL/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64 encoded id+key>
grant_type=client_credentials
การรับโทเค็นการเข้าถึงของคุณ
การตอบสนองจะมีข้อมูลต่อไปนี้
access_token
: โทเค็นการเข้าถึงที่จะใช้เมื่อเรียก CitrusAd APIexpires_in
: จำนวนเงินเป็นวินาทีจนกว่าโทเค็นการเข้าถึงจะหมดอายุtoken_type
: ประเภทโทเค็นที่ส่งกลับ จะเป็นผู้ถือเสมอในกรณีนี้
ตัวอย่างคําตอบอยู่ด้านล่าง
{
"access_token": "xxxxx.yyyyy.zzzzz",
"expires_in": 3600,
"token_type": "Bearer"
}
การใช้โทเค็น
การเรียกกับเอ็นพอยต์ CitrusAd API สามารถทำได้โดยเพียงแค่เพิ่มโทเค็นการเข้าถึงที่สร้างไปยังส่วนหัวการอนุญาตตามคำขอ
Authorization: “Bearer “ <access_token>
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Bearer <access_token>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"placement": "category",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"productFilters": [
["category:Cupboard/Snacks"]
],
"options": {
"filterMode": "AndOr"
},
"maxNumberOfAds": 3
}
ข้อผิดพลาดในคำขอ
ไคลเอ็นต์ไม่ถูกต้อง
หาก client_id
หรือ client_secret
ที่ส่งในคำขอไม่ถูกต้อง คุณจะได้รับการตอบกลับอย่างนี้:
{
"error": "invalid_client"
}
ตรวจสอบให้แน่ใจว่าคุณใช้ข้อมูลประจำตัวที่ถูกต้อง ตรวจสอบอีกครั้ง client_id
และ client_secret
และตรวจสอบให้แน่ใจว่าคุณใช้การอนุญาตพื้นฐานอย่างถูกต้อง เมื่อเรียกเอ็นพอยต์ /โทเค็น
#คําขอไม่ถูกต้อง
ข้อผิดพลาดคําขอที่ไม่ถูกต้องจะถูกส่งกลับจากเซิร์ฟเวอร์การอนุญาต หากคําขอไม่มีพารามิเตอร์ที่จําเป็น รวมถึงค่าพารามิเตอร์ที่ไม่ถูกต้อง รวมถึงพารามิเตอร์มากกว่าหนึ่งครั้ง หรือผิดรูปแบบ
{
"error": "invalid_request"
}
ตรวจสอบให้แน่ใจว่า:
- รวมเพียง
grant_type=client_credentials
ไปยังช่องข้อความคำขอ - ตั้งค่า
Content-Type
ไปยังส่วนหัวของคําขอ