একটি Google চ্যাট স্পেস থেকে ইভেন্টের তালিকা করুন

এই নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে Google Chat API-এর SpaceEvent রিসোর্সে list() পদ্ধতি ব্যবহার করে একটি স্পেসে রিসোর্সে পরিবর্তনগুলি তালিকাভুক্ত করতে হয়।

SpaceEvent রিসোর্স টার্গেট স্পেসে একটি পরিবর্তনের প্রতিনিধিত্ব করে, যার মধ্যে বার্তা, প্রতিক্রিয়া এবং সদস্যতার মতো স্পেসের চাইল্ড রিসোর্স অন্তর্ভুক্ত থাকে। ইভেন্টের ধরণ এবং সমর্থিত ইভেন্ট পেলোডের তালিকা সম্পর্কে আরও তথ্যের জন্য, SpaceEvent রিসোর্স রেফারেন্স ডকুমেন্টেশনের eventType এবং payload ক্ষেত্রগুলি দেখুন।

অনুরোধের সময় থেকে ২৮ দিন আগে পর্যন্ত আপনি ইভেন্টগুলি তালিকাভুক্ত করতে পারেন। সার্ভারটি প্রভাবিত রিসোর্সের সাম্প্রতিকতম সংস্করণ ধারণকারী ইভেন্টগুলি ফেরত দেয়। উদাহরণস্বরূপ, যদি আপনি নতুন স্পেস সদস্যদের সম্পর্কে ইভেন্টগুলি তালিকাভুক্ত করেন, তাহলে সার্ভারটি সর্বশেষ সদস্যতার বিবরণ ধারণকারী Membership রিসোর্সগুলি ফেরত দেয়। যদি অনুরোধের সময়কালে নতুন সদস্যদের অপসারণ করা হয়, তাহলে ইভেন্ট পেলোডে একটি খালি Membership রিসোর্স থাকে।

কোনও স্পেস থেকে ইভেন্ট তালিকাভুক্ত করতে, প্রমাণিত ব্যবহারকারী বা চ্যাট অ্যাপটিকে অবশ্যই স্পেসের সদস্য হতে হবে।

পূর্বশর্ত

নোড.জেএস

  • Google Chat অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ Google Workspace অ্যাকাউন্ট।

পাইথন

  • Google Chat অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ Google Workspace অ্যাকাউন্ট।

স্পেস ইভেন্টের তালিকা (ব্যবহারকারী প্রমাণীকরণ)

চ্যাট স্পেস থেকে স্পেস ইভেন্ট তালিকাভুক্ত করতে, আপনার অনুরোধে নিম্নলিখিতটি পাস করুন:

  • আপনার অনুরোধে প্রতিটি ইভেন্টের ধরণ সমর্থন করার জন্য এক বা একাধিক অনুমোদনের স্কোপ নির্দিষ্ট করুন। সর্বোত্তম অনুশীলন হিসাবে, সবচেয়ে সীমাবদ্ধ স্কোপটি বেছে নিন যা এখনও আপনার অ্যাপটিকে কাজ করতে দেয়। একটি স্কোপ চয়ন করতে, প্রমাণীকরণ এবং অনুমোদনের ওভারভিউ দেখুন।

  • ListSpaceEvents() পদ্ধতিটি কল করুন, ইভেন্ট টাইপের filter তালিকাতে পাস করুন। আপনাকে কমপক্ষে একটি ইভেন্ট টাইপ নির্দিষ্ট করতে হবে এবং আপনি তারিখ অনুসারেও ফিল্টার করতে পারেন। সমর্থিত ইভেন্ট টাইপের তালিকার জন্য, SpaceEvent রিসোর্স রেফারেন্স ডকুমেন্টেশনের eventType ক্ষেত্রটি দেখুন।

নিচের উদাহরণে একটি স্পেসে নতুন সদস্যপদ এবং বার্তা সম্পর্কিত ইভেন্টগুলি তালিকাভুক্ত করা হয়েছে:

নোড.জেএস

চ্যাট/ক্লায়েন্ট-লাইব্রেরি/ক্লাউড/লিস্ট-স্পেস-ইভেন্টস-ইউজার-ক্রেড.জেএস
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

এই নমুনাটি চালানোর জন্য, SPACE_NAME এর পরিবর্তে স্পেসের name আইডিটি ব্যবহার করুন। আপনি ListSpaces() পদ্ধতিতে কল করে অথবা স্পেসের URL থেকে আইডিটি পেতে পারেন।

চ্যাট এপিআই নতুন সদস্যপদ এবং বার্তা সম্পর্কে স্পেস ইভেন্টের পৃষ্ঠাভুক্ত তালিকার একটি তালিকা প্রদান করে।

স্পেস ইভেন্টের তালিকা তৈরি করুন (চ্যাট অ্যাপ প্রমাণীকরণ)

অ্যাপ প্রমাণীকরণের জন্য এককালীন প্রশাসকের অনুমোদন প্রয়োজন।

অ্যাপ প্রমাণীকরণ এবং Chat REST API সহ একটি স্পেস থেকে স্পেস ইভেন্ট তালিকাভুক্ত করতে, আপনার অনুরোধে নিম্নলিখিতটি পাস করুন:

  • আপনার অনুরোধে প্রতিটি ইভেন্টের ধরণ সমর্থন করার জন্য এক বা একাধিক অনুমোদনের স্কোপ নির্দিষ্ট করুন। সর্বোত্তম অনুশীলন হিসাবে, সবচেয়ে সীমাবদ্ধ স্কোপটি বেছে নিন যা এখনও আপনার অ্যাপটিকে কাজ করতে দেয়। একটি স্কোপ নির্বাচন সম্পর্কে আরও জানতে, প্রমাণীকরণ এবং অনুমোদনের ওভারভিউ দেখুন।
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • spaceEvents রিসোর্সে list পদ্ধতিটি কল করুন।
  • যে স্থান থেকে বার্তাগুলি তালিকাভুক্ত করা হবে তার name দিন।
  • নির্দিষ্ট ইভেন্টের ধরণ অনুসন্ধান করতে একটি filter পাস করুন।

একটি API কী তৈরি করুন

ডেভেলপার প্রিভিউ API পদ্ধতি কল করার জন্য, আপনাকে API আবিষ্কার ডকুমেন্টের একটি অ-সর্বজনীন ডেভেলপার প্রিভিউ সংস্করণ ব্যবহার করতে হবে। অনুরোধটি প্রমাণীকরণ করতে, আপনাকে একটি API কী পাস করতে হবে।

API কী তৈরি করতে, আপনার অ্যাপের Google Cloud Project খুলুন এবং নিম্নলিখিতগুলি করুন:

  1. গুগল ক্লাউড কনসোলে, মেনু > API এবং পরিষেবা > শংসাপত্রগুলিতে যান।

    শংসাপত্রগুলিতে যান

  2. ক্রেডেনশিয়াল তৈরি করুন > API কী ক্লিক করুন।
  3. আপনার নতুন API কী প্রদর্শিত হবে।
    • আপনার অ্যাপের কোডে ব্যবহারের জন্য আপনার API কী কপি করতে, "Copy এ ক্লিক করুন। API কীটি আপনার প্রকল্পের শংসাপত্রের "API Keys" বিভাগেও পাওয়া যাবে।
    • অননুমোদিত ব্যবহার রোধ করার জন্য, আমরা সুপারিশ করছি যে API কী কোথায় এবং কোন API-এর জন্য ব্যবহার করা যেতে পারে তা সীমাবদ্ধ করুন। আরও বিস্তারিত জানার জন্য, API সীমাবদ্ধতা যোগ করুন দেখুন।

চ্যাট এপিআই কল করে এমন একটি স্ক্রিপ্ট লিখুন

অ্যাপ প্রমাণীকরণ এবং চ্যাট REST API ব্যবহার করে স্পেস ইভেন্টগুলি কীভাবে তালিকাভুক্ত করবেন তা এখানে দেওয়া হল:

পাইথন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে, chat_spaceevents_list_app.py নামে একটি ফাইল তৈরি করুন।
  2. chat_spaceevents_list_app.py তে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().list(
    
            # The space to list events from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. কোডে, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • API_KEY : চ্যাট API-এর জন্য পরিষেবার শেষ বিন্দু তৈরি করতে আপনি যে API কীটি তৈরি করেছেন।
    • SPACE_NAME : একটি স্পেস নাম, যা আপনি চ্যাট API-এর spaces.list পদ্ধতি থেকে অথবা একটি স্পেসের URL থেকে পেতে পারেন।
  4. আপনার কার্যকরী ডিরেক্টরিতে, নমুনাটি তৈরি করুন এবং চালান:

    python3 chat_spaceevents_list_app.py

চ্যাট এপিআই নতুন সদস্যপদ এবং বার্তা সম্পর্কে স্পেস ইভেন্টের পৃষ্ঠাভুক্ত তালিকার একটি তালিকা প্রদান করে।