RBM Operations API দিয়ে এজেন্টদের পরিচালনা করুন

ক্যারিয়ারদের জন্য মূল RBM কার্যপ্রবাহের মধ্যে নতুন এজেন্টদের তথ্য পর্যালোচনা করা এবং ক্যারিয়ারের নেটওয়ার্কে পরিষেবা চালু করার ও গ্রাহকদের বার্তা পাঠানোর জন্য তাদের অনুমতি অনুমোদন বা প্রত্যাখ্যান করা অন্তর্ভুক্ত।

এই পৃষ্ঠার কোড স্নিপেটগুলো আমাদের জাভাস্ক্রিপ্ট এবং কার্ল স্যাম্পল থেকে নেওয়া হয়েছে।

একটি ক্যারিয়ারের কাছে জমা দেওয়া সমস্ত এজেন্টদের তালিকা করুন

ক্যারিয়ারটি তার নেটওয়ার্কে চালু করার জন্য ডেভেলপারদের দ্বারা জমা দেওয়া সমস্ত এজেন্টের একটি তালিকা পেতে পারে।

নোড.জেএস

const businessCommunicationsApiHelper =
  require('@google/rbm-businesscommunications');

const privateKey =
  require('../../resources/businesscommunications-service-account-credentials.json');

businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);

// Retrieve all agents targeting the carrier
businessCommunicationsApiHelper.listAgents('brands/-').then((response) => {
  console.log('Current agents are:');
  console.log(JSON.stringify(response.data, null, 2));
}).catch((err) => {
  console.log(err);
});

cURL

curl -v "https://businesscommunications.googleapis.com/v1/brands/-/agents" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/business-messaging" \
  -H "`oauth2l header --json serviceAccount.json businesscommunications`"

ব্র্যান্ডটি সেট করা আছে - কারণ সমস্ত এজেন্টের তালিকা পুনরুদ্ধার করার সময় এটির প্রয়োজন হয় না।

এই কোডটি ক্যারিয়ারে চালুর জন্য জমা দেওয়া সমস্ত এজেন্টের একটি তালিকা ফেরত দেয়:

{
  "agents": [
    {
      "name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_4fpd1psz_agent",
      "displayName": "My new agent",
      "rcsBusinessMessagingAgent": {
        "description": "This is the agent description that will be displayed in the Agent info tab in Messages",
        "logoUri": "https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf",
        "heroUri": "https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP",
        "phoneNumbers": [
          {
            "phoneNumber": {
              "number": "+12223334444"
            },
            "label": "Call support"
          }
        ],
        "privacy": {
          "uri": "https://policies.google.com/privacy",
          "label": "Our privacy policy"
        },
        "termsConditions": {
          "uri": "https://policies.google.com/terms",
          "label": "Our Terms and Conditions"
        },
        "color": "#0B78D0",
        "billingConfig": {
          "billingCategory": "NON_CONVERSATIONAL"
        },
        "agentUseCase": "MULTI_USE",
        "hostingRegion": "NORTH_AMERICA",
        "partner": {
          "partnerId": "unique-identifier-for-my-partner",
          "displayName": "My partner",
          "company": "Public name of the company for my partner"
        }
      }
    },
    {
      "name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_7jo0trhw_agent",
      "displayName": "My second agent",
      "rcsBusinessMessagingAgent": {
        "description": "Another agent description",
        "logoUri": "https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf",
        "heroUri": "https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP",
        "phoneNumbers": [
          {
            "phoneNumber": {
              "number": "+12228885768"
            },
            "label": "Call support"
          }
        ],
        "privacy": {
          "uri": "https://policies.google.com/privacy",
          "label": "Our privacy policy"
        },
        "termsConditions": {
          "uri": "https://policies.google.com/terms",
          "label": "Our Terms and Conditions"
        },
        "color": "#0B78D0",
        "billingConfig": {
          "billingCategory": "CONVERSATIONAL"
        },
        "agentUseCase": "PROMOTIONAL",
        "hostingRegion": "NORTH_AMERICA",
        "partner": {
          "partnerId": "unique-identifier-for-my-partner",
          "displayName": "My partner",
          "company": "Public name of the company for my partner"
        }
      }
    }
  ]
}

ফলাফল একবারে এক পৃষ্ঠা করে পাওয়া যাবে। বিস্তারিত জানতে এপিআই রেফারেন্স দেখুন।

এজেন্ট যাচাইকরণ তথ্য পান

পরিষেবা প্রদানকারী কোনো এজেন্টের ব্র্যান্ড যাচাইকরণের অবস্থা জানতে পারে। আরও বিস্তারিত জানতে brands.agents.getVerification দেখুন।

নোড.জেএস

  const businessCommunicationsApiHelper =
    require('@google/rbm-businesscommunications');
  const privateKey =
    require('../../resources/businesscommunications-service-account-credentials.json');
  businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);
  businessCommunicationsApiHelper.getAgentVerification(agents[0].name).then((response) => {
  }).catch((err) => {
    console.log(err);
  });
  

cURL

  curl -v "https://businesscommunications.googleapis.com/v1/brands/-/agents/AGENT ID/verification" \
    -H "Content-Type: application/json" \
    -H "User-Agent: curl/business-messaging" \
    -H "`oauth2l header --json serviceAccount.json businesscommunications`"
  

কলারকে ব্র্যান্ডের নামসহ এজেন্টের পুরো নাম দেওয়ার প্রয়োজন নেই। শুধুমাত্র এজেন্ট আইডি ( @rbm.goog আগের অংশ) প্রয়োজন, এবং ব্র্যান্ডের নাম - হিসেবে সেট করতে হবে।

এই কোডটি যাচাইকরণের অবস্থা এবং অংশীদারের তথ্য ফেরত দেয়:

{
  "name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_ciymyd2b_agent/verification",
  "verificationState": "VERIFICATION_STATE_UNVERIFIED",
  "agentVerificationContact": {
    "partnerName": "John Doe",
    "partnerEmailAddress": "john.doe@gmail.com",
    "brandContactName": "Bob",
    "brandContactEmailAddress": "bob@brand.com",
    "brandWebsiteUrl": "https://www.brand.com"
  }
}

এজেন্ট লঞ্চের স্থিতি এবং প্রশ্নাবলী পান

ক্যারিয়ার কোনো এজেন্টের বর্তমান লঞ্চ স্ট্যাটাস এবং ডেভেলপার লঞ্চ প্রশ্নাবলী পেতে পারে।

নোড.জেএস

const businessCommunicationsApiHelper =
  require('@google/rbm-businesscommunications');

const privateKey =
  require('../../resources/businesscommunications-service-account-credentials.json');

businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);

businessCommunicationsApiHelper.getAgentLaunch(agents[0].name).then((response) => {
  console.log('Launch details are:');
  console.log(JSON.stringify(response.data, null, 2));
}).catch((err) => {
  console.log(err);
});

cURL

curl -v "https://businesscommunications.googleapis.com/v1/brands/-/agents/AGENT ID/launch" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/business-messaging" \
  -H "`oauth2l header --json serviceAccount.json businesscommunications`"

কলারকে ব্র্যান্ডের নামসহ এজেন্টের পুরো নাম দেওয়ার প্রয়োজন নেই। শুধুমাত্র এজেন্ট আইডি ( @rbm.goog আগের অংশ) প্রয়োজন, এবং ব্র্যান্ডের নাম - হিসেবে সেট করতে হবে।

এই কোডটি উৎক্ষেপণের তথ্য ফেরত দেয়:

{
  "name": "brands/8b5c7f80-b025-486b-bc8a-2d0797559711/agents/my-agent-demo/launch",
  "rcsBusinessMessaging": {
    "questionnaire": {
      "contacts": [
        {
          "name": "John Doe",
          "title": "Mr",
          "email": "johndoe@developer.com"
        }
      ],
      "optinDescription": "Messages are sent to known MSISDNs",
      "triggerDescription": "We respond to any interaction",
      "interactionsDescription": "Simple conversations with a chatbot",
      "optoutDescription": "User sends stop"
    },
    "launchDetails": {
      "/v1/regions/thecarrier": {
        "launchState": "LAUNCH_STATE_LAUNCHED",
        "updateTime": "2023-02-20T15:10:36.528669Z"
      }
    }
  }
}

এজেন্টের সংজ্ঞা খুঁজে দেখুন

বাহকটি কোনো এজেন্টের অনন্য শনাক্তকারী ( name ) ব্যবহার করে তার তথ্য পুনরুদ্ধার করতে পারে।

নোড.জেএস

const businessCommunicationsApiHelper =
  require('@google/rbm-businesscommunications');

const privateKey =
  require('../../resources/businesscommunications-service-account-credentials.json');

businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);

businessCommunicationsApiHelper.getAgent(agent[0].name).then((response) => {
  console.log('Agent details are:');
  console.log(JSON.stringify(response.data, null, 2));
}).catch((err) => {
  console.log(err);
});

cURL

curl -v "https://businesscommunications.googleapis.com/v1/brands/-/agents/AGENT ID" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/business-messaging" \
  -H "`oauth2l header --json serviceAccount.json businesscommunications`"

কলারকে ব্র্যান্ডের নামসহ এজেন্টের পুরো নাম দেওয়ার প্রয়োজন নেই। শুধুমাত্র এজেন্ট আইডি ( @rbm.goog আগের অংশ) প্রয়োজন, এবং ব্র্যান্ডের নাম - হিসেবে সেট করতে হবে।

এই কোডটি এজেন্টের তথ্য ফেরত দেয়:

{
  "name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_4fpd1psz_agent",
  "displayName": "My new agent",
  "rcsBusinessMessagingAgent": {
    "description": "This is the agent description that will be displayed in the Agent info tab in Messages",
    "logoUri": "https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf",
    "heroUri": "https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP",
    "phoneNumbers": [
      {
        "phoneNumber": {
          "number": "+12223334444"
        },
        "label": "Call support"
      }
    ],
    "privacy": {
      "uri": "https://policies.google.com/privacy",
      "label": "Our privacy policy"
    },
    "termsConditions": {
      "uri": "https://policies.google.com/terms",
      "label": "Our Terms and Conditions"
    },
    "color": "#0B78D0",
    "billingConfig": {
      "billingCategory": "NON_CONVERSATIONAL"
    },
    "agentUseCase": "MULTI_USE",
    "hostingRegion": "NORTH_AMERICA",
    "partner": {
      "partnerId": "unique-identifier-for-my-partner",
      "displayName": "My partner",
      "company": "Public name of the company for my partner"
    }
  }
}

এজেন্ট লঞ্চের অবস্থা পরিবর্তন করুন

একজন ক্যারিয়ার কোনো এজেন্টের লঞ্চ স্ট্যাটাস আপডেট করতে পারেন এবং স্ট্যাটাস পরিবর্তনের কারণ ব্যাখ্যা করে একটি মন্তব্য যোগ করতে পারেন।

অবস্থাটি নিম্নরূপভাবে পরিবর্তন করা উচিত:

  • LAUNCH_STATE_PENDING থেকে LAUNCH_STATE_LAUNCHED বা LAUNCH_STATE_REJECTED
  • LAUNCH_STATE_LAUNCHED থেকে LAUNCH_STATE_SUSPENDED
  • LAUNCH_STATE_SUSPENDED থেকে LAUNCH_STATE_LAUNCHED অথবা LAUNCH_STATE_UNLAUNCHED

কলারকে ব্র্যান্ডের নামসহ এজেন্টের পুরো নাম দেওয়ার প্রয়োজন নেই। শুধুমাত্র এজেন্ট আইডি ( @rbm.goog আগের অংশ) প্রয়োজন, এবং ব্র্যান্ডের নাম - হিসেবে সেট করতে হবে।

নোড.জেএস

const businessCommunicationsApiHelper =
  require('@google/rbm-businesscommunications');

const privateKey =
  require('../../resources/businesscommunications-service-account-credentials.json');

businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);

businessCommunicationsApiHelper
	.updateAgentLaunchState(agentId, 'LAUNCH_STATE_LAUNCHED').then((response) => {
		console.log('Updated launch details are:');
		console.log(JSON.stringify(response.data, null, 2));
	});

cURL

curl -v -X PATCH "https://businesscommunications.googleapis.com/v1/brands/-/agents/AGENT ID/launch" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/business-messaging" \
  -H "`oauth2l header --json serviceAccount.json businesscommunications`" \
  -d "{
    'rcsBusinessMessaging': {
      'launchDetails': {
        '': {
          'launchState': 'LAUNCH_STATE_LAUNCHED',
        }
      }
    }
  }"

এই কোডটি লঞ্চ স্ট্যাটাস পরিবর্তিত হওয়ার সাথে সাথে আপডেট করা লঞ্চ তথ্য ফেরত দেয়:

{
  "name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_4fpd1psz_agent/launch",
  "rcsBusinessMessaging": {
    "questionnaire": {
      "contacts": [
        {
          "name": "John Doe",
          "title": "Contact manager",
          "email": "john.doe@gmail.com"
        }
      ],
      "optinDescription": "Users accepted our terms of service online.",
      "triggerDescription": "We are reaching pre-registered users",
      "interactionsDescription": "This agent sends notifications and processes suggested replies.",
      "optoutDescription": "Reply stop and we stop.",
      "agentAccessInstructions": "This is a simple agent that reaches registered users.",
      "videoUris": [
        "https://www.google.com/a/video"
      ],
      "screenshotUris": [
        "https://www.google.com/a/screenshot"
      ]
    },
    "launchDetails": {
      "/v1/regions/thecarrier": {
        "launchState": "LAUNCH_STATE_REJECTED",
        "comment": "We don't have a billing contract in place with you.", // Note: The field is optional only for launch approval; otherwise, required.
        "updateTime": "2023-04-28T15:22:10.221191Z"
      }
    }
  }
}

এজেন্টদের লুকান বা প্রকাশ করুন

একটি পরিষ্কার এবং সুসংগঠিত কর্মক্ষেত্র বজায় রাখতে, আপনি আপনার নেটওয়ার্কে অব্যবহৃত এজেন্টগুলিকে লুকিয়ে রাখতে পারেন। কোনো এজেন্টকে লুকিয়ে রাখলে তা ডিফল্ট এপিআই ডিসকভারি ফলাফল থেকে বাদ হয়ে যায়।

লুকানো শুধুমাত্র দৃশ্যমানতার একটি পরিবর্তন। এটি কেবল আপনার নির্দিষ্ট ক্যারিয়ারের জন্য দৃশ্যকে প্রভাবিত করে এবং অংশীদার বা অন্যান্য ক্যারিয়ারের জন্য এজেন্টের স্ট্যাটাসকে প্রভাবিত করে না। আপনি যেকোনো সময় একজন এজেন্টকে দৃশ্যমান করতে এবং ব্যবস্থাপনা চালিয়ে যেতে তাকে দৃশ্যমান করতে পারেন।

সক্রিয় এজেন্টগুলো যাতে ভুলবশত দৃশ্য থেকে মুছে না যায়, তা নিশ্চিত করার জন্য নিম্নলিখিত নিয়মগুলো প্রযোজ্য:

  • যোগ্যতা : আপনি আপনার নেটওয়ার্কে শুধুমাত্র সেইসব এজেন্টকে লুকাতে পারবেন যারা নিষ্ক্রিয় অবস্থায় আছে: যেমন স্থগিত (Suspended) বা প্রত্যাখ্যাত (Rejected )।
  • সীমাবদ্ধতা : আপনার নেটওয়ার্কে কোনো এজেন্টের লঞ্চ স্ট্যাটাস ' Launched' বা 'Pending' থাকলে আপনি সেটি লুকাতে পারবেন না। আপনি যদি এই ধরনের কোনো এজেন্টকে লুকানোর চেষ্টা করেন, তাহলে FAILED_PRECONDITION এরর সহ অনুরোধটি প্রত্যাখ্যান করা হবে।

স্ট্যাটাস লুকান আপডেট করুন

আপনার ক্যারিয়ারের জন্য কোনো এজেন্ট লঞ্চ লুকানো বা দেখানো করতে, লঞ্চ রিসোর্সের উপর setAgentLaunchVisibility মেথডটি ব্যবহার করুন। লুকানোর জন্য, isHidden বুলিয়ানটিকে true এবং দেখানোর জন্য এটিকে false সেট করুন।

পদ্ধতি: POST /v1/brands/{brandId}/agents/{agentId}/launch:setAgentLaunchVisibility

curl -v -X POST "https://businesscommunications.googleapis.com/v1/brands/$BRAND_ID/agents/$AGENT_ID/launch:setAgentLaunchVisibility" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/business-messaging" \
  -H "$(oauth2l header --json serviceAccount.json businesscommunications)" \
  --data '{
    "name": "brands/$BRAND_ID/agents/$AGENT_ID/launch",
    "isHidden": true
  }'
{
  "name": "brands/8b5c7f80-b025-486b-bc8a-2d0797559711/agents/my-agent-demo/launch",
  "rcsBusinessMessaging": {
    "questionnaire": {
      "contacts": [
        {
          "name": "John Doe",
          "title": "Mr",
          "email": "johndoe@developer.com"
        }
      ],
      "optinDescription": "Messages are sent to known MSISDNs",
      "triggerDescription": "We respond to any interaction",
      "interactionsDescription": "Simple conversations with a chatbot",
      "optoutDescription": "User sends stop"
    },
    "launchDetails": {
      "/v1/regions/thecarrier": {
        "launchState": "LAUNCH_STATE_SUSPENDED",
        "updateTime": "2026-02-20T15:10:36.528669Z",
        "isHidden": true
      }
    }
  }
}

ফিল্টার সহ এজেন্টদের তালিকা

ডিফল্টরূপে, ' list ' মেথডটি আপনার ক্যারিয়ার দ্বারা লুকানো এজেন্টদের বাদ দেয়। আপনার ফলাফলে তাদের অন্তর্ভুক্ত করতে, includeHidden প্যারামিটারটি ব্যবহার করুন।

একজন এজেন্টকে মুছে ফেলুন

নিরাপত্তাজনিত কারণে, RBM এজেন্টগুলো এখন আর ডিলিট করা যাবে না। সাহায্যের জন্য, RCS for Business সাপোর্ট টিমের সাথে যোগাযোগ করুন