API অনুমোদন

হোটেল APIগুলি অ্যাক্সেস করার সময় আপনার আবেদন অনুমোদন করতে OAuth 2.0 ব্যবহার করুন৷

OAuth 2.0 সেটআপ

OAuth 2.0 এর জন্য আপনার Google অ্যাকাউন্টের সাথে যুক্ত একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে নিজেকে সনাক্ত করতে হবে। পরিষেবা অ্যাকাউন্ট একটি OAuth 2.0 অ্যাক্সেস টোকেনের বিনিময়ে আপনার ব্যক্তিগত কী পাঠায়। তারপরে আপনি এই টোকেনটি শুধুমাত্র পঠনযোগ্য ডেটার জন্য হোটেল API-তে কল করার জন্য ব্যবহার করতে পারেন, যেমন মূল্য, হোটেল এবং আপনার হোটেলের মূল্য ফিড সম্পর্কে ডায়াগনস্টিক রিপোর্টিং ডেটা।

অ্যাক্সেস টোকেন এক ঘন্টা (3,600 সেকেন্ড) জন্য ভাল।

আপনি যদি পূর্বে ClientLogin প্রয়োগ করে থাকেন, OAuth 2.0 পদ্ধতিটি একই রকম, নিম্নলিখিত পার্থক্য সহ:

  • আপনার অ্যাপ্লিকেশন API অ্যাক্সেস করতে একটি Google পরিষেবা অ্যাকাউন্ট ব্যবহার করে৷
  • API কল করার সময় আপনি Authorization HTTP হেডারে একটি OAuth 2.0 অ্যাক্সেস টোকেন পাস করেন।

Travel Partner API এর সাথে OAuth 2.0 ব্যবহার করার জন্য আপনার অ্যাকাউন্ট সেট আপ করতে, এই পদক্ষেপগুলি সম্পাদন করুন:

  1. Google Developers Console (DevConsole) এ একটি নতুন প্রকল্প তৈরি করুন

  2. নতুন প্রজেক্টের জন্য Travel Partner API এ অ্যাক্সেস সক্ষম করুন

  3. একটি পরিষেবা অ্যাকাউন্ট এবং এর শংসাপত্র তৈরি করুন

  4. আপনার হোটেল ডেটাতে আপনার পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিন

এই ধাপগুলির প্রতিটি অনুসরণ করা বিভাগগুলিতে বর্ণনা করা হয়েছে।

ধাপ 1: একটি নতুন DevConsole প্রকল্প তৈরি করুন

Google Developers Console ('DevConsole') হল ট্রাফিক ডেটা, প্রমাণীকরণ, এবং আপনার প্রকল্পগুলি ব্যবহার করা Google APIগুলির জন্য বিলিং তথ্য পরিচালনা এবং দেখার জন্য Google এর বিকাশকারীর অভিজ্ঞতা৷

DevConsole-এ, একটি প্রকল্প হল সেটিংস, শংসাপত্র এবং আপনি যে অ্যাপ্লিকেশন বা অ্যাপ্লিকেশনগুলিতে কাজ করছেন সেগুলি সম্পর্কে মেটাডেটার একটি সংগ্রহ যা Google বিকাশকারী API এবং Google ক্লাউড সংস্থানগুলি ব্যবহার করে৷

DevConsole হল যেখানে আপনি আপনার প্রকল্পের এই দিকগুলি পরিচালনা করেন, যেমন API শংসাপত্র তৈরি করা, API সক্রিয় করা এবং আপনার প্রকল্পের সাথে যুক্ত দল এবং বিলিং তথ্য পরিচালনা করা।

একটি নতুন DevConsole প্রকল্প তৈরি করতে:

  1. আপনার Gmail/Google অ্যাকাউন্টে সাইন ইন করুন।

  2. Google ডেভেলপার কনসোল খুলুন। যদি এটি আপনার প্রথম প্রজেক্ট হয়, তাহলে প্রধান ভিউ একটি সাধারণ ক্রিয়েট প্রজেক্ট বোতাম প্রদর্শন করে:

    আকার 1

  3. প্রজেক্ট তৈরি করুন বাটনে ক্লিক করুন। DevConsole নতুন প্রকল্প ডায়ালগ বক্স প্রদর্শন করে:

    fig2

    প্রকল্পের নাম ইনপুট ক্ষেত্রে আপনার নতুন প্রকল্পের জন্য একটি বন্ধুত্বপূর্ণ নাম লিখুন। ক্ষেত্রটির নীচে, DevConsole আপনার জন্য একটি প্রজেক্ট আইডি তৈরি করে, এটি নিশ্চিত করে যে আইডিটি সমস্ত প্রোজেক্টে অনন্য। উদাহরণস্বরূপ, আপনি যদি "My New Project" লিখুন, DevConsole একটি ID বরাদ্দ করে যেমন my-new-project-266022

  4. আপনার নতুন প্রকল্প তৈরি করতে তৈরি বোতামে ক্লিক করুন।

  5. APIs এবং পরিষেবাগুলি > ড্যাশবোর্ড নির্বাচন করতে নেভিগেশন মেনু ব্যবহার করুন।

    fig3

    নীচের ছবিটি DevConsole-এর উপরের বাম দিকে নেভিগেশন মেনু দেখায়। এটি আপনার প্রকল্পের জন্য ড্যাশবোর্ড দৃশ্য প্রদর্শন করে:

    fig4

আরও তথ্যের জন্য, বিকাশকারী কনসোলে প্রকল্পগুলি পরিচালনা করুন দেখুন।

আপনি যখন একটি নতুন প্রকল্প তৈরি করেন, তখন এটির সাথে এখনো কোনো API যুক্ত থাকে না। পরবর্তী ধাপে, আপনি আপনার নতুন প্রকল্পের জন্য Travel Partner API সক্ষম করবেন।

ধাপ 2: নতুন প্রকল্পের জন্য Travel Partner API সক্ষম করুন

হোটেল API ব্যবহার করতে, আপনাকে অবশ্যই আপনার নতুন DevConsole প্রকল্পে Travel Partner API সক্ষম করতে হবে।

আপনার নতুন প্রকল্পের জন্য হোটেল API সক্ষম করতে:

  1. উপরে বর্ণিত আপনার প্রকল্পের ড্যাশবোর্ড ভিউতে যান।

  2. API এবং পরিষেবাগুলি সক্ষম করুন ক্লিক করুন৷ এটি API লাইব্রেরি স্বাগত পৃষ্ঠা প্রদর্শন করে।

  3. অনুসন্ধান ক্ষেত্রে, Travel Partner API টাইপ করা শুরু করুন। Google API কনসোল API-এর একটি তালিকা প্রদর্শন করে যা আপনি যা টাইপ করেন তার সাথে মেলে।

  4. এপিআই-এর সারণীতে Travel Partner API ক্লিক করুন। DevConsole API সম্পর্কে একটি বিবরণ প্রদর্শন করে।

  5. আপনার প্রকল্পের জন্য এই API সক্ষম করতে API সক্ষম করুন বোতামে ক্লিক করুন।

আরও তথ্যের জন্য, APIs সক্রিয় এবং নিষ্ক্রিয় করুন দেখুন।

আপনার Google অ্যাকাউন্টের নতুন প্রকল্পের জন্য হোটেল APIগুলি এখন সক্ষম করা হয়েছে৷

পরবর্তী পদক্ষেপটি একটি পরিষেবা অ্যাকাউন্ট তৈরি করা এবং এর জন্য কী তৈরি করা।

ধাপ 3: একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন এবং এর শংসাপত্র তৈরি করুন

পরিষেবা অ্যাকাউন্টগুলি সার্ভার-টু-সার্ভার ইন্টারঅ্যাকশন দ্বারা ব্যবহৃত হয় যেমন একটি ওয়েব অ্যাপ্লিকেশন এবং আপনার হোটেল ডেটার মধ্যে।

একটি পরিষেবা অ্যাকাউন্ট তৈরি এবং কনফিগার করতে:

  1. Google API কনসোলের প্রধান ভিউতে, বাঁ-হাতের নেভিগেশনে শংসাপত্রে ক্লিক করুন। DevConsole শংসাপত্রের দৃশ্য প্রদর্শন করে।

    শংসাপত্র দৃশ্য আপনার প্রকল্পের জন্য ক্লায়েন্ট আইডি এবং শংসাপত্র প্রদর্শন করে। একটি OAuth 2.0 অ্যাক্সেস টোকেন অনুরোধ করার সময় আপনার অ্যাপ্লিকেশনটি ক্লায়েন্ট আইডি ব্যবহার করবে। নতুন প্রকল্পের এখনও কোন ক্লায়েন্ট বা শংসাপত্র থাকবে না।

  2. API এবং পরিষেবার লিঙ্কে শংসাপত্রে ক্লিক করুন।

  3. শংসাপত্র তৈরি করুন বোতামে ক্লিক করুন এবং ড্রপডাউন থেকে পরিষেবা অ্যাকাউন্ট কী নির্বাচন করুন। পরিষেবা অ্যাকাউন্ট তৈরি করুন কী ভিউ প্রদর্শন করে।

  4. পরিষেবা অ্যাকাউন্ট ড্রপডাউন থেকে, নতুন পরিষেবা অ্যাকাউন্ট নির্বাচন করুন।

  5. একটি পরিষেবা অ্যাকাউন্টের নাম এবং পরিষেবা অ্যাকাউন্ট আইডি লিখুন।

    নামটি আপনি যা চান তা হতে পারে, তবে অ্যাকাউন্ট আইডি অবশ্যই সমস্ত প্রকল্পে অনন্য হতে হবে। আপনার লেখা নামের উপর ভিত্তি করে DevConsole আপনার জন্য একটি অনন্য অ্যাকাউন্ট আইডি তৈরি করবে।

  6. নীচে দেখানো হিসাবে কী ধরনের জন্য P12 নির্বাচন করুন। P12 প্রয়োজন

    চিত্র5

  7. Create বাটনে ক্লিক করুন। DevConsole আপনার প্রকল্পের জন্য একটি ব্যক্তিগত/পাবলিক কী জোড়া তৈরি করে। ব্যক্তিগত কীটি আপনার ব্রাউজার ডাউনলোডগুলি সঞ্চয় করে ডিফল্ট অবস্থানে সংরক্ষিত হয়৷ আপনাকে .json ফাইল ফরম্যাটের বিপরীতে .p12 ফরম্যাট (বাইনারী) ডাউনলোড করতে হবে

    আপনি আপনার স্ক্রিপ্ট বা অন্যান্য অ্যাপ্লিকেশনে ব্যক্তিগত কী ব্যবহার করেন যা Travel Partner API অ্যাক্সেস করে।

    কীগুলি তৈরি করা শেষ হলে DevConsole নিম্নলিখিত বিজ্ঞপ্তিটি প্রদর্শন করে:

    fig6

  8. OK, got it বাটনে ক্লিক করুন। DevConsole আপনাকে শংসাপত্রের দৃশ্যে ফিরিয়ে দেয়। আপনার পরিষেবা অ্যাকাউন্ট সম্পর্কে বিশদ নিশ্চিত করতে এবং আপনার প্রকল্পের সাথে সম্পর্কিত পরিষেবা অ্যাকাউন্টগুলি দেখতে, এই দৃশ্যে পরিষেবা অ্যাকাউন্টগুলি পরিচালনা করুন ক্লিক করুন৷

    পরিষেবা অ্যাকাউন্টে এখন এটির সাথে যুক্ত নিম্নলিখিত শংসাপত্র রয়েছে:

    • ক্লায়েন্ট আইডি: একটি অনন্য শনাক্তকারী যা আপনার অ্যাপ্লিকেশনটি OAuth 2.0 অ্যাক্সেস টোকেন অনুরোধ করার সময় ব্যবহার করে।
    • ইমেল ঠিকানা: পরিষেবা অ্যাকাউন্টের জন্য একটি তৈরি করা ইমেল ঠিকানা, " account_name @ project_name .google.com.iam.gserviceaccount.com" আকারে।
    • শংসাপত্র আঙ্গুলের ছাপ: আপনি যে ব্যক্তিগত কী ডাউনলোড করেছেন তার আইডি।

আরও তথ্যের জন্য, সার্ভার থেকে সার্ভার অ্যাপ্লিকেশনের জন্য OAuth 2.0 ব্যবহার করুন দেখুন।

ধাপ 4: আপনার হোটেল সেন্টার ডেটাতে পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিন

চূড়ান্ত পদক্ষেপ হল আপনার হোটেল সেন্টারে অ্যাক্সেস সহ নতুন পরিষেবা অ্যাকাউন্ট প্রদান করা। পরিষেবা অ্যাকাউন্টটি আপনার পূর্ববর্তী ধাপে তৈরি করা ইমেল ঠিকানা দ্বারা চিহ্নিত করা হয়। আপনি হোটেল সেন্টার শেয়ারিং সেটিংস ব্যবহার করে এই অ্যাকাউন্টে অ্যাক্সেস প্রদান করেন।

আপনার হোটেল সেন্টার ডেটাতে একটি পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিতে:

অ্যাকাউন্টে ব্যবহারকারীদের যোগ করার জন্য আপনার কাছে সঠিক অ্যাক্সেস না থাকলে, আমাদের সাথে যোগাযোগ করুন ফর্মটি ব্যবহার করে Google হোটেল টিমের সাথে যোগাযোগ করুন এবং আপনার অ্যাকাউন্টের মালিকানা সেট আপ করার জন্য আমাদের অনুরোধ করুন। আপনি একজন মালিককে এক বা একাধিক ইমেল করার অনুরোধ করতে পারেন৷ হোটেল সেন্টার অ্যাক্সেস সম্পর্কে আরও তথ্যের জন্য, লিঙ্ক হোটেল সেন্টার এবং Google বিজ্ঞাপন দেখুন।

  1. একটি নতুন ব্রাউজার উইন্ডোতে, হোটেল সেন্টার খুলুন।fig7

  2. Google ব্যানারের হোটেল সেন্টারে , শেয়ারিং ডায়ালগ খুলতে ব্যবহারকারী যোগ করুন আইকনে ক্লিক করুন।

    চিত্র8

  3. আরও লোক যোগ করুন ক্ষেত্রে, আপনি আপনার হোটেল সেন্টারে যে পরিষেবা অ্যাকাউন্ট যোগ করতে চান তার ইমেল ঠিকানা লিখুন।

  4. Notify People অপশনটি সিলেক্ট করে রাখুন।

  5. ড্রপ-ডাউন মেনু থেকে, পরিচালনা নির্বাচন করুন।

  6. আমন্ত্রণ বোতামে ক্লিক করুন।

  7. আপনি আপনার হোটেল সেন্টারে ব্যবহারকারীদের যোগ করার পরে, আপনার পরিষেবা অ্যাকাউন্টটি প্রায় 24 ঘন্টার মধ্যে API অ্যাক্সেসের জন্য সক্ষম করা উচিত।

আপনার পরিষেবা অ্যাকাউন্টের জন্য API অ্যাক্সেস সক্ষম হয়েছে বলে Google আপনাকে অবহিত করার পরে, আপনি OAuth-এর সাথে API অ্যাক্সেস করা শুরু করতে পারেন।

OAuth 2.0 ব্যবহার করা হচ্ছে

API অ্যাক্সেস করতে, আপনার অ্যাপ্লিকেশনটিকে অবশ্যই পরিষেবা অ্যাকাউন্টের তৈরি করা ইমেল ঠিকানা এবং ব্যক্তিগত কী দিয়ে Google এর কাছে নিজেকে সনাক্ত করতে হবে। Google-এর প্রমাণীকরণ প্রক্রিয়া একটি OAuth 2.0 অ্যাক্সেস টোকেনের জন্য এই কী বিনিময় করে যা আপনি আপনার অ্যাপের API কলগুলিতে Authorization শিরোনামে পাস করেন।

অ্যাক্সেস টোকেন (যাকে বহনকারী টোকেন নামেও পরিচিত) হল OAuth 2.0 স্ট্যান্ডার্ডের অংশ। একটি HTTP হেডারে একটি অ্যাক্সেস টোকেন নির্দিষ্ট করার জন্য সিনট্যাক্স হল:

Authorization: Bearer *oauth2_access_token*

নিম্নলিখিত উদাহরণটি একটি অনুরোধের নমুনা HTTP শিরোনাম দেখায় যা রিপোর্ট এপিআই অ্যাক্সেস করে:

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

একটি অ্যাক্সেস টোকেন তৈরি করতে, আপনার চয়ন করা যেকোনো ভাষায় একটি অ্যাপ্লিকেশন তৈরি করুন। নিম্নলিখিত উদাহরণ পাইথনে টোকেন তৈরি করে। তারপরে আপনি Travel Partner API অ্যাক্সেস করার সময় আপনার অনুরোধের Authorization শিরোনামে এই টোকেনটি ব্যবহার করতে পারেন৷

#!/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 কীগুলি ব্যবহার করার জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করতে ভুলবেন না৷

নমুনা পাইথন স্ক্রিপ্ট একটি 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. আপনি কি এই অ্যাকাউন্ট শেয়ার করুন বোতামে ক্লিক করে পরিষেবা অ্যাকাউন্টের সাথে আপনার হোটেল বিজ্ঞাপন কেন্দ্রের অ্যাকাউন্ট শেয়ার করেছেন?
  6. আপনি কি আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM) কে পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা এবং আপনার অংশীদার আইডি পাঠিয়েছেন?
  7. আপনার Travel Partner API কলগুলি কি Authorization শিরোনামে সম্প্রতি প্রাপ্ত টোকেন পাস করছে?
  8. আপনার Authorization শিরোনামের ধারক টোকেন কি 1 ঘন্টার বেশি পুরানো?

নিম্নলিখিত সারণী কিছু সাধারণ ত্রুটি এবং সম্ভাব্য রেজোলিউশন তালিকাভুক্ত করে:

ত্রুটি বর্ণনা
Invalid credentials এই জিনিস একটি নম্বর বোঝাতে পারে. আপনি যদি এই ত্রুটির সম্মুখীন হন, তা পরীক্ষা করুন:
  • আপনি একটি বৈধ বাহক টোকেন সহ একটি Authorization শিরোনাম নির্দিষ্ট করেছেন৷
  • বহনকারী টোকেনটি এক ঘণ্টারও কম বয়সী। একটি টোকেন শুধুমাত্র এক ঘন্টার জন্য ভাল।
  • আপনি সঠিক অংশীদারের নাম উল্লেখ করেছেন ( partner ক্যোয়ারী স্ট্রিং প্যারামিটার সহ)। মান হল আপনার অনন্য অংশীদার আইডি, আপনার অংশীদারের নাম নয় যা হোটেল বিজ্ঞাপন কেন্দ্রে প্রদর্শিত হয়। আপনি যদি আপনার পার্টনার আইডি না জানেন, তাহলে আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM) এর সাথে যোগাযোগ করুন৷
Not found আপনার এন্ডপয়েন্ট সম্ভবত বিকৃত। আপনি একটি GET অনুরোধ জমা দিচ্ছেন কিনা তা পরীক্ষা করুন এবং অনুরোধের URLটি বৈধ (এটি API সিনট্যাক্সের সাথে সামঞ্জস্যপূর্ণ যা আপনি অ্যাক্সেস করার চেষ্টা করছেন)।
Invalid string value এন্ডপয়েন্টের এক বা একাধিক অংশে অবৈধ সিনট্যাক্স রয়েছে। উদাহরণস্বরূপ, আপনি পথের অংশে ভুল বানান করতে পারেন। আপনি আপনার পুরো পথে সঠিক আন্ডারস্কোর, ক্যাপিটালাইজেশন এবং শব্দ ব্যবহার করেছেন কিনা তা পরীক্ষা করুন।
Unsupported output format রিপোর্ট এপিআই ব্যবহার করার সময় এই ত্রুটিটি সবচেয়ে বেশি ঘটে। আপনার GET অনুরোধের URL-এ আপনাকে অবশ্যই "alt=csv" উল্লেখ করতে হবে। রিপোর্ট API JSON সমর্থন করে না।
AccessTokenRefreshError/Invalid grant নমুনা পাইথন অ্যাপ্লিকেশন চালানোর সময়, এই ত্রুটি নিম্নলিখিত কারণে হতে পারে:
  • আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানাটি ভুল। Google বিকাশকারী কনসোলে ইমেল অ্যাকাউন্টটি পরীক্ষা করুন এবং নিশ্চিত করুন যে এটি API অ্যাক্সেস করার জন্য অনুমোদিত৷
  • ইমেল ঠিকানার API অ্যাক্সেস নেই। ইমেল ঠিকানাটি আপনার হোটেলের ডেটা অ্যাক্সেস করার জন্য অনুমোদিত কিনা তা পরীক্ষা করুন ( হোটেল সেন্টারের মাধ্যমে শেয়ার করা হয়েছে)।
  • পরিষেবা অ্যাকাউন্টের জন্য কী ফাইলটি সঠিক নয়। একটি নতুন .p12 শংসাপত্র ডাউনলোড করতে DevConsole ব্যবহার করুন এবং নিশ্চিত করুন যে আপনার Python অ্যাপটি সঠিকটির দিকে নির্দেশ করছে৷
HotelAdsAPIConnection object has no attribute credentials নমুনা পাইথন অ্যাপ চালানোর সময়, আপনার .p12 ফাইলের পথটি ভুল।
Invalid scope নমুনা পাইথন অ্যাপ চালানোর সময়, API স্কোপ অবশ্যই https://www.googleapis.com/auth/travelpartner হতে হবে।
Forbidden আপনি যে অ্যাকাউন্ট আইডি ব্যবহার করেন সেটি হল আপনার অ্যাক্সেস করার অনুমোদন নেই। আপনি যদি একজন উপ-অ্যাকাউন্টের মালিক হন, তাহলে আপনি হয়ত অভিভাবক বা রুট অ্যাকাউন্ট আইডি অ্যাক্সেস করতে পারবেন না।