การให้สิทธิ์ API

ใช้ OAuth 2.0 เพื่อให้สิทธิ์แอปพลิเคชันเมื่อเข้าถึง API ของโรงแรม

การตั้งค่า OAuth 2.0

OAuth 2.0 กำหนดให้คุณต้องระบุตัวตนโดยใช้บัญชีบริการที่เชื่อมโยงกับบัญชี Google บัญชีบริการจะส่งคีย์ส่วนตัวของคุณเพื่อแลกเปลี่ยนกับโทเค็นเพื่อการเข้าถึง OAuth 2.0 จากนั้นคุณจะใช้โทเค็นนี้ในการเรียกใช้ API ของโรงแรมสำหรับข้อมูลแบบอ่านอย่างเดียว เช่น ข้อมูลการรายงานราคา โรงแรม และการวินิจฉัยเกี่ยวกับฟีดราคาโรงแรมได้

โทเค็นเพื่อการเข้าถึงจะใช้งานได้เป็นเวลา 1 ชั่วโมง (3,600 วินาที)

หากก่อนหน้านี้คุณใช้ ClientLogin วิธีการของ OAuth 2.0 จะคล้ายคลึงกันแต่มีความแตกต่างดังต่อไปนี้

  • แอปพลิเคชันของคุณใช้บัญชีบริการของ Google เพื่อเข้าถึง API
  • คุณต้องส่งโทเค็นเพื่อการเข้าถึง OAuth 2.0 ในส่วนหัว HTTP ของ Authorization เมื่อเรียกใช้ API

หากต้องการตั้งค่าบัญชีให้ใช้ OAuth 2.0 กับ Travel Partner API ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้างโปรเจ็กต์ใหม่ใน Google Developers Console (DevConsole)

  2. เปิดใช้การเข้าถึง Travel Partner API สำหรับโปรเจ็กต์ใหม่

  3. สร้างบัญชีบริการและข้อมูลเข้าสู่ระบบของบัญชีดังกล่าว

  4. ให้สิทธิ์เข้าถึงข้อมูลโรงแรมแก่บัญชีบริการ

อ่านข้อมูลเกี่ยวกับแต่ละขั้นตอนเหล่านี้ได้ในส่วนต่อไปนี้

ขั้นตอนที่ 1: สร้างโปรเจ็กต์ใหม่ใน DevConsole

Google Developers Console ("DevConsole") เป็นประสบการณ์สำหรับนักพัฒนาซอฟต์แวร์ของ Google ในการจัดการและดูข้อมูลการรับส่งข้อมูล การตรวจสอบสิทธิ์ และข้อมูลสำหรับการเรียกเก็บเงินสำหรับ Google APIs ที่โปรเจ็กต์ของคุณใช้

ใน DevConsole โปรเจ็กต์คือชุดการตั้งค่า ข้อมูลเข้าสู่ระบบ และข้อมูลเมตาเกี่ยวกับแอปพลิเคชันหรือแอปพลิเคชันที่คุณกำลังทำงานอยู่ ซึ่งใช้ Google Developer API และทรัพยากร Google Cloud

DevConsole คือที่ที่คุณสามารถจัดการด้านต่างๆ เหล่านี้ในโปรเจ็กต์ เช่น การสร้างข้อมูลเข้าสู่ระบบ API, การเปิดใช้งาน API รวมถึงการจัดการทีมและข้อมูลสำหรับการเรียกเก็บเงินที่เชื่อมโยงกับโปรเจ็กต์ของคุณ

วิธีสร้างโปรเจ็กต์ใหม่ใน DevConsole มีดังนี้

  1. ลงชื่อเข้าใช้บัญชี Gmail/Google ของคุณ

  2. เปิด Google Developer Console หากนี่เป็นโปรเจ็กต์แรกของคุณ มุมมองหลักจะแสดงปุ่มสร้างโปรเจ็กต์ง่ายๆ ดังนี้

    fig1

  3. คลิกปุ่มสร้างโครงการ DevConsole จะแสดงกล่องโต้ตอบโปรเจ็กต์ใหม่ ดังนี้

    fig2

    ป้อนชื่อที่เหมาะสมกับโปรเจ็กต์ใหม่ในช่องป้อนข้อมูลชื่อโปรเจ็กต์ จากนั้น DevConsole จะสร้างรหัสโปรเจ็กต์ไว้ใต้ช่องดังกล่าวเพื่อให้แน่ใจว่ารหัสนั้นไม่ซ้ำกับโปรเจ็กต์อื่นๆ ตัวอย่างเช่น หากคุณป้อน "โปรเจ็กต์ใหม่ของฉัน" DevConsole จะกำหนดรหัสเป็น my-new-project-266022

  4. คลิกปุ่มสร้างเพื่อสร้างโปรเจ็กต์ใหม่

  5. ใช้เมนูการนำทางเพื่อเลือก API และบริการ > หน้าแดชบอร์ด

    fig3

    รูปภาพด้านล่างแสดงเมนูการนำทางที่ด้านซ้ายบนของ DevConsole ซึ่งจะแสดงมุมมองหน้าแดชบอร์ดสำหรับโปรเจ็กต์ของคุณ ดังนี้

    fig4

ดูข้อมูลเพิ่มเติมได้ที่จัดการโปรเจ็กต์ใน Developers Console

เมื่อสร้างโปรเจ็กต์ใหม่ โปรเจ็กต์ดังกล่าวจะยังไม่มี API ที่เชื่อมโยงอยู่ ในขั้นตอนถัดไป คุณจะต้องเปิดใช้ Travel Partner API สำหรับโปรเจ็กต์ใหม่

ขั้นตอนที่ 2: เปิดใช้ Travel Partner API สำหรับโปรเจ็กต์ใหม่

คุณต้องเปิดใช้ Travel Partner API ในโปรเจ็กต์ DevConsole ใหม่เพื่อใช้ API ของโรงแรม

วิธีเปิดใช้ API ของโรงแรมสำหรับโปรเจ็กต์ใหม่มีดังนี้

  1. ไปที่มุมมองหน้าแดชบอร์ดของโปรเจ็กต์ตามที่อธิบายไว้ข้างต้น

  2. คลิกเปิดใช้ API และบริการ ซึ่งจะแสดงหน้าต้อนรับของไลบรารี API

  3. ในช่องค้นหา ให้เริ่มพิมพ์ Travel Partner API คอนโซล Google API จะแสดงรายการ API ที่ตรงกับสิ่งที่คุณพิมพ์

  4. คลิก Travel Partner API ในตาราง API ที่ตรงกัน DevConsole แสดงคำอธิบายเกี่ยวกับ API

  5. คลิกปุ่มเปิดใช้ API เพื่อเปิดใช้ API นี้สำหรับโปรเจ็กต์ของคุณ

ดูข้อมูลเพิ่มเติมได้ที่เปิดและปิดใช้งาน API

ตอนนี้เราได้เปิดใช้ Hotel API สำหรับโปรเจ็กต์ใหม่ของบัญชี Google แล้ว

ขั้นตอนถัดไปคือการสร้างบัญชีบริการและคีย์สำหรับบัญชีดังกล่าว

ขั้นตอนที่ 3: สร้างบัญชีบริการและข้อมูลเข้าสู่ระบบของบัญชีดังกล่าว

บัญชีบริการมีไว้สำหรับการโต้ตอบแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ เช่น การโต้ตอบระหว่างเว็บแอปพลิเคชันกับข้อมูลโรงแรมของคุณ

วิธีสร้างและกำหนดค่าบัญชีบริการมีดังนี้

  1. ในมุมมองหลักของคอนโซล Google API ให้คลิกข้อมูลเข้าสู่ระบบที่การนำทางด้านซ้าย จากนั้น DevConsole จะแสดงมุมมองข้อมูลเข้าสู่ระบบ

    มุมมองข้อมูลเข้าสู่ระบบจะแสดงรหัสไคลเอ็นต์และข้อมูลเข้าสู่ระบบสำหรับโปรเจ็กต์ของคุณ แอปพลิเคชันจะใช้รหัสไคลเอ็นต์เมื่อขอโทเค็นเพื่อการเข้าถึง OAuth 2.0 แต่โปรเจ็กต์ใหม่ๆ จะไม่มีไคลเอ็นต์หรือข้อมูลเข้าสู่ระบบ

  2. คลิกลิงก์ข้อมูลเข้าสู่ระบบใน API และบริการ

  3. คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์บัญชีบริการจากเมนูแบบเลื่อนลง มุมมองสร้างคีย์บัญชีบริการจะปรากฏขึ้น

  4. จากเมนูแบบเลื่อนลงของบัญชีบริการ ให้เลือกบัญชีบริการใหม่

  5. ป้อนชื่อบัญชีบริการและรหัสบัญชีบริการ

    คุณจะตั้งชื่ออะไรก็ได้ตามต้องการ แต่รหัสบัญชีต้องไม่ซ้ำกันในทุกโปรเจ็กต์ DevConsole จะสร้างรหัสบัญชีเฉพาะสำหรับคุณโดยอิงตามชื่อที่คุณป้อน

  6. เลือก P12 สำหรับประเภทคีย์ตามที่แสดงด้านล่าง ต้องระบุ P12

    fig5

  7. คลิกที่ปุ่มสร้าง DevConsole จะสร้างคู่คีย์ส่วนตัว/สาธารณะสำหรับโปรเจ็กต์ของคุณ คีย์ส่วนตัวจะบันทึกลงในตำแหน่งเริ่มต้นที่เบราว์เซอร์ของคุณจัดเก็บการดาวน์โหลดไว้ คุณต้องดาวน์โหลดรูปแบบ .p12 (ไบนารี) แทนที่จะเป็นรูปแบบไฟล์ .json

    คุณใช้คีย์ส่วนตัวในสคริปต์หรือแอปพลิเคชันอื่นๆ ที่เข้าถึง Travel Partner API ได้

    DevConsole จะแสดงประกาศต่อไปนี้เมื่อสร้างคีย์เสร็จสมบูรณ์

    fig6

  8. คลิกปุ่มรับทราบ DevConsole จะนำคุณกลับไปยังมุมมองข้อมูลเข้าสู่ระบบ หากต้องการยืนยันรายละเอียดเกี่ยวกับบัญชีบริการและดูบัญชีบริการที่เชื่อมโยงกับโปรเจ็กต์ ให้คลิกจัดการบัญชีบริการในมุมมองนี้

    ปัจจุบันบัญชีบริการจะมีการเชื่อมโยงข้อมูลรับรองต่อไปนี้กับบัญชีดังกล่าว

    • รหัสไคลเอ็นต์: ตัวระบุที่ไม่ซ้ำกันซึ่งแอปพลิเคชันจะใช้เมื่อขอโทเค็นเพื่อการเข้าถึง OAuth 2.0
    • อีเมล: อีเมลที่สร้างขึ้นสำหรับบัญชีบริการในรูปแบบ "account_name@project_name.google.com.iam.gserviceaccount.com"
    • ลายนิ้วมือสำหรับใบรับรอง: รหัสของคีย์ส่วนตัวที่คุณดาวน์โหลด

ดูข้อมูลเพิ่มเติมได้ที่การใช้ OAuth 2.0 สำหรับแอปพลิเคชันระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์

ขั้นตอนที่ 4: ให้สิทธิ์เข้าถึงข้อมูล Hotel Center แก่บัญชีบริการ

ขั้นตอนสุดท้ายคือการให้สิทธิ์ในการเข้าถึง Hotel Center แก่บัญชีบริการใหม่ ระบบจะระบุบัญชีบริการด้วยอีเมลที่สร้างขึ้นซึ่งคุณสร้างไว้ในขั้นตอนก่อนหน้า คุณให้สิทธิ์เข้าถึงบัญชีนี้โดยใช้การตั้งค่าการแชร์ Hotel Center

วิธีให้สิทธิ์เข้าถึงข้อมูลใน Hotel Center แก่บัญชีบริการมีดังนี้

หากคุณไม่มีสิทธิ์เข้าถึงที่เหมาะสมในการเพิ่มผู้ใช้ลงในบัญชี โปรดติดต่อทีม Google Hotels โดยใช้แบบฟอร์มติดต่อเรา และขอให้เราตั้งค่าการเป็นเจ้าของบัญชีของคุณ คุณขอให้ส่งอีเมลให้เจ้าของได้อย่างน้อย 1 ฉบับ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้าถึง Hotel Center ได้ที่ลิงก์ Hotel Center กับ Google Ads

  1. เปิด Hotel Center ในหน้าต่างเบราว์เซอร์ใหม่ fig7

  2. ในแบนเนอร์ Hotel Center โดย Google ให้คลิกไอคอนเพิ่มผู้ใช้เพื่อเปิดกล่องโต้ตอบการแชร์

    fig8

  3. ในช่องเพิ่มบุคคล ให้ป้อนอีเมลของบัญชีบริการที่ต้องการเพิ่มลงใน Hotel Center

  4. เลือกตัวเลือกแจ้งเตือนบุคคลอื่นไว้

  5. เลือกจัดการจากเมนูแบบเลื่อนลง

  6. คลิกปุ่มเชิญ

  7. หลังจากที่เพิ่มผู้ใช้ใน Hotel Center บัญชีบริการควรเปิดใช้การเข้าถึง API ได้ภายในประมาณ 24 ชั่วโมง

หลังจาก Google แจ้งว่ามีการเปิดใช้การเข้าถึง API สำหรับบัญชีบริการแล้ว คุณจะเริ่มเข้าถึง API ด้วย OAuth ได้

การใช้ OAuth 2.0

หากต้องการเข้าถึง API แอปพลิเคชันของคุณต้องระบุตัวตนกับ Google ด้วยคีย์ส่วนตัวและอีเมลที่สร้างขึ้นของบัญชีบริการ กลไกการตรวจสอบสิทธิ์ของ Google จะแลกเปลี่ยนคีย์นี้สำหรับโทเค็นเพื่อการเข้าถึง OAuth 2.0 ที่คุณส่งในส่วนหัว Authorization ในการเรียก API ของแอป

โทเค็นเพื่อการเข้าถึง (หรือที่เรียกว่าโทเค็นสำหรับผู้ถือ) เป็นส่วนหนึ่งของมาตรฐาน OAuth 2.0 ไวยากรณ์สำหรับการระบุโทเค็นเพื่อการเข้าถึงในส่วนหัว HTTP มีดังนี้

Authorization: Bearer *oauth2_access_token*

ตัวอย่างต่อไปนี้แสดงตัวอย่างส่วนหัว HTTP ของคำขอที่เข้าถึง Reports API

GET /travelpartner/v2.0/42000042/reports/top_opportunity_7_day HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer nd42.fdLSKkljD98344444444444lSDF42fdLSKkljD98344444444444lSDF42
Cache-Control: no-cache

หากต้องการสร้างโทเค็นเพื่อการเข้าถึง ให้สร้างแอปพลิเคชันเป็นภาษาที่คุณเลือก ตัวอย่างต่อไปนี้สร้างโทเค็นใน Python จากนั้นคุณจะใช้โทเค็นนี้ในส่วนหัว Authorization ของคำขอได้เมื่อเข้าถึง Travel Partner API

#!/usr/bin/python2.7
#
""" Sample code to get an auth header that you can use in your HTTP requests
    1. Please see https://developers.google.com/api-client-library/python/start/installation
       to download and install the google-api-python-client package.
    2. Edit lines below marked _SERVICE_ACCOUNT, _KEY_FILE,  _PARTNER_NAME,
       and _API_VERSION.
    3. Run the program using: "python sample.py". The app returns the value that
       you use for the Authorization header's Bearer token in your request.
    4. Copy the token and use it in requests to the Travel Partner API.
       For example (2.0):
       https://www.googleapis.com/travelpartner/2.0/42000042/reports/budget
       For example (1.x):
       https://www.googleapis.com/travelpartner/1.2/reports?report_type=BUDGET
"""
import httplib2
import json
import os
import sys
import urllib

HAS_CRYPTO = False

from apiclient import discovery
from oauth2client.client import flow_from_clientsecrets
try:
  # Some systems may not have OpenSSL installed so can't use SignedJwtAssertionCredentials.
  from oauth2client.client import SignedJwtAssertionCredentials
  HAS_CRYPTO = True
except ImportError:
  print "Unable to import SignedJwtAssertionCredentials"

from oauth2client import tools
from oauth2client.file import Storage

# Authorization scope for our requests (do not change)
_DEFAULT_APISCOPE = 'https://www.googleapis.com/auth/travelpartner'

# Use the service account you set up in the Google Developers Platform.
# It will be of the form "gsaccount_name@project_name.google.com.iam.gserviceaccount.com".
_SERVICE_ACCOUNT = ('myserviceaccount@my-hotel-project.google.com.iam.gserviceaccount.com')

# Set this to the full path to your service account's private binary .p12 key file
# that you downloaded from the Google Developer's Console and stored in a secure place.
# DO NOT use the json version of the certificate.
_KEY_FILE = '../mylocaldir/api-keys/8482bb2bdb08.p12'

# Set this to the case-sensitive "Partner Key", NOT the account
# name in the Hotel Ads Center or the numeric partner ID.
# Check with your TAM if you do not know your "Partner Key" name.
_PARTNER_NAME = 'testpartner2'

class HotelAdsAPIConnection(object):
  def __init__(self, service_account=_SERVICE_ACCOUNT, key=_KEY_FILE, partner=_PARTNER_NAME):
    self.key_file = key
    self.account = service_account
    self.partner = partner

  def InitializeCredentials(self, scope):
    '''Get credentials for use in API requests.
    Generates service account credentials if the key file is present,
    and regular user credentials if the file is not found.
    '''
    if os.path.exists(self.key_file):
      if not HAS_CRYPTO:
        raise Exception("Unable to use cryptographic functions "
                        + "Try installing OpenSSL")
      with open (self.key_file, 'rb') as file:
        key = file.read();
      creds = SignedJwtAssertionCredentials(self.account, key, scope)
      self.credentials = creds

  def authorize(self):
    '''Construct a HTTP client that uses the supplied credentials.'''
    return credentials.authorize(httplib2.Http())

  def print_creds(self):
    '''Prints the Authorization header to use in HTTP requests.'''
    cred_dict = json.loads(self.credentials.to_json())

    if 'access_token' in cred_dict:
      print 'Authorization: Bearer %s' % (cred_dict['access_token'],)
    else:
      print 'creds: %s' % (cred_dict,)

  def GetConnection(self):
    http = httplib2.Http()
    self.credentials.refresh(http)
    http = self.credentials.authorize(http)
    self.print_creds()
    return http

def main(args):
  # Create an instance of the HotelAdsAPIConnection inner class
  api = HotelAdsAPIConnection()

  # Generate credentials
  api.InitializeCredentials(_DEFAULT_APISCOPE)

  # Output the Authorization header to use in HTTP requests
  api.GetConnection()

if __name__ == "__main__":
    main(sys.argv)</pre>

เมื่อพัฒนาแอปพลิเคชัน โปรดทำตามแนวทางปฏิบัติแนะนำสำหรับการใช้คีย์ API อย่างปลอดภัย

สคริปต์ Python ตัวอย่างจะแสดงโทเค็นสำหรับผู้ถือของส่วนหัว Authorization ตามตัวอย่างต่อไปนี้

$ python sample.py
Authorization: Bearer ya29.42424242sample_420icu8122KSvoh4T42cRoG3rW1lc0Q
$

ใช้ค่าของโทเค็นในคำขอ โทเค็นดังกล่าวจะใช้งานได้เป็นระยะเวลา 1 ชั่วโมง

การแก้ปัญหา

หากพบปัญหา การตรวจสอบรายการต่อไปนี้อย่างรวดเร็วอาจช่วยแก้ไขปัญหาได้

  1. คุณได้สร้างโปรเจ็กต์ในแผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google ไหม
  2. คุณได้พบและเปิดใช้ Travel Partner API หรือยัง
  3. คุณได้ดาวน์โหลดไฟล์ .p12 ซึ่งเป็นคีย์ส่วนตัวหลังจากคลิกสร้างรหัสไคลเอ็นต์และเลือกบัญชีบริการหรือไม่
  4. คุณได้รับอีเมลรหัสไคลเอ็นต์ของบัญชีบริการในแบบฟอร์ม nnnnnnn@app_name.google.com.iam.gserviceaccount.com ไหม
  5. คุณได้แชร์บัญชีศูนย์ช่วยเหลือของ Google Hotel Ads กับบัญชีบริการโดยคลิกปุ่มแชร์บัญชีนี้ใช่ไหม
  6. คุณได้ส่งอีเมลและรหัสพาร์ทเนอร์ของบัญชีบริการไปให้ผู้จัดการลูกค้าด้านเทคนิค (TAM) หรือไม่
  7. การเรียก Travel Partner API ของคุณผ่านโทเค็นที่เพิ่งได้รับในส่วนหัว Authorization ใช่ไหม
  8. โทเค็นสำหรับผู้ถือของส่วนหัว Authorization ของคุณมีอายุเกิน 1 ชั่วโมงหรือไม่

ตารางต่อไปนี้แสดงข้อผิดพลาดที่พบบ่อยและวิธีแก้ปัญหาที่เป็นไปได้

ข้อผิดพลาด คำอธิบาย
Invalid credentials ปัญหานี้อาจเกิดขึ้นจากหลายสาเหตุ หากพบข้อผิดพลาดนี้ ให้ทำการตรวจสอบดังนี้
  • คุณระบุส่วนหัว Authorization ด้วยโทเค็นสำหรับผู้ถือที่ถูกต้อง
  • โทเค็นสำหรับผู้ถือจะใช้งานได้ไม่เกิน 1 ชั่วโมง โดยโทเค็นจะใช้งานได้เป็นระยะเวลาเพียง 1 ชั่วโมง
  • คุณระบุชื่อพาร์ทเนอร์ที่ถูกต้อง (ด้วยพารามิเตอร์สตริงการค้นหา partner) ค่านี้ต้องเป็นรหัสพาร์ทเนอร์ที่ไม่ซ้ำกัน ไม่ใช่ชื่อพาร์ทเนอร์ที่ปรากฏในศูนย์ช่วยเหลือของ Google Hotel Ads หากไม่ทราบรหัสพาร์ทเนอร์ โปรดติดต่อผู้จัดการลูกค้าด้านเทคนิค (TAM)
Not found ปลายทางของคุณอาจมีรูปแบบไม่ถูกต้อง ตรวจสอบว่าคุณส่งคำขอ GET และ URL ของคำขอถูกต้อง (สอดคล้องกับไวยากรณ์ API ที่คุณพยายามเข้าถึง)
Invalid string value ปลายทางอย่างน้อย 1 ส่วนมีไวยากรณ์ที่ไม่ถูกต้อง ตัวอย่างเช่น คุณอาจสะกดส่วนใดส่วนหนึ่งของเส้นทางผิด ตรวจสอบว่าคุณใช้ขีดล่าง อักษรตัวพิมพ์ใหญ่ และคำที่ถูกต้องตลอดทั้งเส้นทาง
Unsupported output format ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อใช้ Reports API คุณต้องระบุ "alt=csv" ใน URL ของคำขอ GET Reports API ไม่รองรับ JSON
AccessTokenRefreshError/Invalid grant เมื่อเรียกใช้แอป Python ตัวอย่าง ข้อผิดพลาดนี้อาจเกิดจากสาเหตุต่อไปนี้
  • อีเมลบัญชีบริการไม่ถูกต้อง ตรวจสอบบัญชีอีเมลใน Google Developer Console และดูว่าบัญชีดังกล่าวได้รับสิทธิ์ให้เข้าถึง API แล้ว
  • อีเมลไม่มีสิทธิ์เข้าถึง API ตรวจสอบว่าอีเมลได้รับสิทธิ์ให้เข้าถึงข้อมูลโรงแรมของคุณ (แชร์ผ่าน Hotel Center)
  • ไฟล์คีย์ไม่ถูกต้องสำหรับบัญชีบริการ ใช้ DevConsole เพื่อดาวน์โหลดใบรับรอง .p12 ใหม่ และตรวจสอบว่าแอป Python ชี้ไปยังใบรับรองที่ถูกต้อง
HotelAdsAPIConnection object has no attribute credentials เมื่อเรียกใช้แอป Python ตัวอย่าง เส้นทางไปยังไฟล์ .p12 ไม่ถูกต้อง
Invalid scope เมื่อเรียกใช้แอป Python ตัวอย่าง ขอบเขต API ต้องเป็น https://www.googleapis.com/auth/travelpartner
Forbidden รหัสบัญชีที่คุณใช้เป็นรหัสที่ไม่ได้รับสิทธิ์เข้าถึง หากเป็นเจ้าของบัญชีย่อย คุณอาจเข้าถึงรหัสบัญชีระดับบนสุดหรือบัญชีรูทไม่ได้