验证代理或营业地点

<ph type="x-smartling-placeholder">

在您为自己管理的品牌创建 Business Messages 代理并最终确定代理信息后,即可验证相应代理及任何关联的营业地点。代理和营业地点必须经过验证才能发布

代理验证

当您验证代理时,Business Messages 会与代理所代表的品牌的联系人确认相应代理的信息。一旦品牌联系人确认您可以通过该代理来代表相应品牌,且代理信息正确无误,代理便会通过验证。

验证前核对清单

在验证代理之前,请使用以下核对清单找出所有问题 验证过程中可能出现的错误信息

代理信息
代理名称

必需。向用户显示的代理名称。请参阅创建代理

代理徽标

必需。向用户显示的代理徽标。请参阅创建代理

消息功能可用性

必需。已发布的代理能够响应用户的日期和时间。请参阅设置消息功能可用性

非本地信息

对于非本地入口点为必需。代理的关联网域、电话号码和可用发布区域。请参阅设置非本地信息

默认语言区域

必需。代理进行通信时常用的语言区域。请参阅本地化和语言区域

OAuth 配置

可选。有关代理与其他产品的 OAuth 集成的详细信息。请参阅使用 OAuth 进行身份验证

允许的入口点

必需。仅当您使用 Business Communications API 创建代理时才需要检查。请参阅创建代理

验证代理后,您只能更新以下内容:

  • conversationalSettings
  • customAgentId
  • defaultLocale
  • primaryAgentInteraction
  • additionalAgentInteractions
  • phone

如果您在验证代理后需要更新只读字段,请与我们联系。(您必须先使用 Business Messages Google 账号登录。如需注册账号,请参阅在 Business Messages 中注册。)

前提条件

您需要先收集一些信息,然后才能验证代理:

  • 代理 name

    如果您不知道代理的名称,请参阅列出品牌的所有代理

  • 开发机器上的 GCP 项目的服务账号密钥的路径

  • 合作伙伴名称(贵组织的名称)
  • 合作伙伴电子邮件地址(您的电子邮件地址)
  • 代理所代表的品牌的网站(以“https://”开头的可公开访问的网址)
  • 代理所代表的品牌(能够验证您与该品牌有业务关系且有权代表该品牌)的联系人姓名和电子邮件地址(通常与品牌网站使用相同的域名)

验证代理

当您请求对代理进行验证时,Business Messages 会向您指定的品牌联系人发送电子邮件以确认代理的信息。

在品牌联系人验证您的代理信息,且 Business Messages 验证您的代理后,您会收到一封电子邮件。

如需验证代理,请运行以下命令。请将变量替换为前提条件中确定的值。


# This code requests a verification of a Business Messages agent.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/verify?method=api#verify_an_agent

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl
-X POST \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__:requestVerification" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "agentVerificationContact": {
    "partnerName": "Partner name",
    "partnerEmailAddress": "partner@email.com",
    "brandContactName": "Brand contact name",
    "brandContactEmailAddress": "brand-contact@email.com",
    "brandWebsiteUrl": "https://www.your-company-website.com"
  }
}'


/**
 * This code snippet requests an agent verification.
 * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/verify?method=api#verify_an_agent
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */


/**
 * Edit the values below:
 */

const BRAND_ID = 'EDIT_HERE';
const AGENT_ID = 'EDIT_HERE';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
 
'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async
function main() {
 
const authClient = await initCredentials();

 
const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;

 
if (authClient) {
   
const agentVerificationContact = {
      agentVerificationContact
: {
        partnerName
: 'Partner name',
        partnerEmailAddress
: 'partner@email.com',
        brandContactName
: 'Brand contact name',
        brandContactEmailAddress
: 'brand-contact@email.com',
        brandWebsiteUrl
: 'https://www.your-company-website.com',
     
},
   
};

   
// Setup the parameters for the API call
   
const apiParams = {
      auth
: authClient,
      name
: agentName,
      resource
: agentVerificationContact,
   
};

    bcApi
.brands.agents.requestVerification(apiParams, {}, (err, response) => {
     
if (err !== undefined && err !== null) {
        console
.dir(err);
     
} else {
       
// Agent found
        console
.log(response.data);
     
}
   
});
 
}
 
else {
    console
.log('Authentication failure.');
 
}
}

/**
 * Initializes the Google credentials for calling the
 * Business Messages API.
 */

 async
function initCredentials() {
 
// Configure a JWT auth client
 
const authClient = new google.auth.JWT(
    privatekey
.client_email,
   
null,
    privatekey
.private_key,
    scopes
,
 
);

 
return new Promise(function(resolve, reject) {
   
// Authenticate request
    authClient
.authorize(function(err, tokens) {
     
if (err) {
        reject
(false);
     
} else {
        resolve
(authClient);
     
}
   
});
 
});
}

main
();
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.Agent;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
 
/**
   * Initializes credentials used by the Business Communications API.
   */

 
private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
   
BusinessCommunications.Builder builder = null;
   
try {
     
GoogleCredential credential = GoogleCredential
           
.fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential
= credential.createScoped(Arrays.asList(
         
"https://www.googleapis.com/auth/businesscommunications"));

      credential
.refreshToken();

     
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
     
JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

     
// Create instance of the Business Communications API
      builder
= new BusinessCommunications
         
.Builder(httpTransport, jsonFactory, null)
         
.setApplicationName(credential.getServiceAccountProjectId());

     
// Set the API credentials and endpoint
      builder
.setHttpRequestInitializer(credential);
   
} catch (Exception e) {
      e
.printStackTrace();
   
}

   
return builder;
 
}

 
public static void main(String args[]) {
   
try {
     
// Create client library reference
     
BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

     
String agentName = "brands/BRAND_ID/agents/AGENT_ID";

     
BusinessCommunications.Brands.Agents.RequestVerification request
         
= builder.build().brands().agents().requestVerification(agentName,
         
new RequestAgentVerificationRequest().setAgentVerificationContact(
             
new AgentVerificationContact()
                 
.setPartnerName("PARTNER_NAME")
                 
.setPartnerEmailAddress("PARTNER_EMAIL")
                 
.setBrandContactName("BRAND_CONTACT_NAME")
                 
.setBrandContactEmailAddress("BRAND_CONTACT_EMAIL")
                 
.setBrandWebsiteUrl("BRAND_WEBSITE_URL")));

     
System.out.println(request.execute().toPrettyString());
   
} catch (Exception e) {
      e
.printStackTrace();
   
}
 
}
}
此代码基于 Java Business Communications 客户端库

"""This code requests a verification of a Business Messages agent.

Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/verify?method=api#verify_an_agent

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""


from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
   
BusinesscommunicationsBrandsAgentsRequestVerificationRequest,
   
RequestAgentVerificationRequest,
   
AgentVerificationContact
)

# Edit the values below:
BRAND_ID
= 'EDIT_HERE'
AGENT_ID
= 'EDIT_HERE'
SCOPES
= ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE
= './service_account_key.json'

credentials
= ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE
, scopes=SCOPES)

client
= BusinesscommunicationsV1(credentials=credentials)

agents_service
= BusinesscommunicationsV1.BrandsAgentsService(client)

agent_name
= 'brands/' + BRAND_ID + '/agents/' + AGENT_ID

verification_request
= agents_service.RequestVerification(BusinesscommunicationsBrandsAgentsRequestVerificationRequest(
        name
=agent_name,
        requestAgentVerificationRequest
=RequestAgentVerificationRequest(
            agentVerificationContact
=AgentVerificationContact(
                partnerName
='Partner name',
                partnerEmailAddress
='partner@email.com',
                brandContactName
='Brand contact name',
                brandContactEmailAddress
='brand-contact@email.com',
                brandWebsiteUrl
='https://www.your-company-website.com'
           
))
   
))

print(verification_request)

如需了解格式设置和值选项,请参阅 brands.agents.requestVerification

获取代理的验证状态

提交代理验证请求后,您可以查看代理的验证状态。

如需获取代理的验证状态,请运行以下命令。请将变量替换为前提条件中确定的值。


# This code gets the agent verification state.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl
-X GET \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/verification" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

/**
 * This code snippet gets an agent verification state.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */


/**
 * Edit the values below:
 */

const BRAND_ID = 'EDIT_HERE';
const AGENT_ID = 'EDIT_HERE';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
 
'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async
function main() {
 
const authClient = await initCredentials();

 
const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;

 
if (authClient) {
   
// Setup the parameters for the API call
   
const apiParams = {
      auth
: authClient,
      name
: agentName + '/verification',
   
};

    bcApi
.brands.agents.getVerification(apiParams, {}, (err, response) => {
     
if (err !== undefined && err !== null) {
        console
.dir(err);
     
} else {
       
// Agent found
        console
.log(response.data);
     
}
   
});
 
}
 
else {
    console
.log('Authentication failure.');
 
}
}

/**
 * Initializes the Google credentials for calling the
 * Business Messages API.
 */

 async
function initCredentials() {
 
// Configure a JWT auth client
 
const authClient = new google.auth.JWT(
    privatekey
.client_email,
   
null,
    privatekey
.private_key,
    scopes
,
 
);

 
return new Promise(function(resolve, reject) {
   
// Authenticate request
    authClient
.authorize(function(err, tokens) {
     
if (err) {
        reject
(false);
     
} else {
        resolve
(authClient);
     
}
   
});
 
});
}

main
();
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.Agent;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
 
/**
   * Initializes credentials used by the Business Communications API.
   */

 
private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
   
BusinessCommunications.Builder builder = null;
   
try {
     
GoogleCredential credential = GoogleCredential
           
.fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential
= credential.createScoped(Arrays.asList(
         
"https://www.googleapis.com/auth/businesscommunications"));

      credential
.refreshToken();

     
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
     
JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

     
// Create instance of the Business Communications API
      builder
= new BusinessCommunications
         
.Builder(httpTransport, jsonFactory, null)
         
.setApplicationName(credential.getServiceAccountProjectId());

     
// Set the API credentials and endpoint
      builder
.setHttpRequestInitializer(credential);
   
} catch (Exception e) {
      e
.printStackTrace();
   
}

   
return builder;
 
}

 
public static void main(String args[]) {
   
try {
     
// Create client library reference
     
BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

     
String agentName = "brands/BRAND_ID/agents/AGENT_ID/verification";

     
BusinessCommunications.Brands.Agents.GetVerification request
         
= builder.build().brands().agents().getVerification(agentName);

     
System.out.println(request.execute().toPrettyString());
   
} catch (Exception e) {
      e
.printStackTrace();
   
}
 
}
}
此代码基于 Java Business Communications 客户端库

"""This code gets the agent verification state.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""


from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
   
BusinesscommunicationsBrandsAgentsGetVerificationRequest,
)

# Edit the values below:
BRAND_ID
= 'EDIT_HERE'
AGENT_ID
= 'EDIT_HERE'
SCOPES
= ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE
= './service_account_key.json'

credentials
= ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE
, scopes=SCOPES)

client
= BusinesscommunicationsV1(credentials=credentials)

agents_service
= BusinesscommunicationsV1.BrandsAgentsService(client)

agent_name
= 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/verification'

verification_state
= agents_service.GetVerification(BusinesscommunicationsBrandsAgentsGetVerificationRequest(
        name
=agent_name
   
))

print(verification_state)

如需了解格式设置和值选项,请参阅 brands.agents.getVerification

取消代理验证请求

如果您发现代理信息不正确或代理尚未准备好接受验证,可以取消待处理的验证请求。如果您取消请求,Business Messages 会通知您的品牌联系人,而您需要提交新的验证请求以重新开始验证流程。

如需取消代理验证请求,请运行以下命令。请将变量替换为前提条件中确定的值。


# This code updates the verification state of an agent.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateVerification

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl
-X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/verification" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "verificationState": "VERIFICATION_STATE_UNVERIFIED"
}'


/**
 * This code snippet updates the state of an agent verification.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateVerification
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */


/**
 * Edit the values below:
 */

const BRAND_ID = 'EDIT_HERE';
const AGENT_ID = 'EDIT_HERE';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
 
'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async
function main() {
 
const authClient = await initCredentials();

 
const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;

 
if (authClient) {
   
// Setup the parameters for the API call
   
const apiParams = {
      auth
: authClient,
      name
: agentName + '/verification',
      updateMask
: 'verificationState',
      resource
: {
        name
: agentName,
        verificationState
: 'VERIFICATION_STATE_UNVERIFIED',
     
}
   
};

    bcApi
.brands.agents.updateVerification(apiParams, {}, (err, response) => {
     
if (err !== undefined && err !== null) {
        console
.dir(err);
     
} else {
       
// Agent found
        console
.log(response.data);
     
}
   
});
 
}
 
else {
    console
.log('Authentication failure.');
 
}
}

/**
 * Initializes the Google credentials for calling the
 * Business Messages API.
 */

 async
function initCredentials() {
 
// Configure a JWT auth client
 
const authClient = new google.auth.JWT(
    privatekey
.client_email,
   
null,
    privatekey
.private_key,
    scopes
,
 
);

 
return new Promise(function(resolve, reject) {
   
// Authenticate request
    authClient
.authorize(function(err, tokens) {
     
if (err) {
        reject
(false);
     
} else {
        resolve
(authClient);
     
}
   
});
 
});
}

main
();
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.Agent;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
 
/**
   * Initializes credentials used by the Business Communications API.
   */

 
private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
   
BusinessCommunications.Builder builder = null;
   
try {
     
GoogleCredential credential = GoogleCredential
           
.fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential
= credential.createScoped(Arrays.asList(
         
"https://www.googleapis.com/auth/businesscommunications"));

      credential
.refreshToken();

     
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
     
JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

     
// Create instance of the Business Communications API
      builder
= new BusinessCommunications
         
.Builder(httpTransport, jsonFactory, null)
         
.setApplicationName(credential.getServiceAccountProjectId());

     
// Set the API credentials and endpoint
      builder
.setHttpRequestInitializer(credential);
   
} catch (Exception e) {
      e
.printStackTrace();
   
}

   
return builder;
 
}

 
public static void main(String args[]) {
   
try {
     
// Create client library reference
     
BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

     
String agentName = "brands/BRAND_ID/agents/AGENT_ID/verification";

     
BusinessCommunications.Brands.Agents.UpdateVerification request
         
= builder.build().brands().agents().updateVerification(agentName,
             
new AgentVerification().setVerificationState("VERIFICATION_STATE_UNVERIFIED"));

     
System.out.println(request.execute().toPrettyString());
   
} catch (Exception e) {
      e
.printStackTrace();
   
}
 
}
}
此代码基于 Java Business Communications 客户端库

"""This code updates the verification state of an agent.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateVerification

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""


from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
   
AgentVerification,
   
BusinesscommunicationsBrandsAgentsUpdateVerificationRequest,
)

# Edit the values below:
BRAND_ID
= 'EDIT_HERE'
AGENT_ID
= 'EDIT_HERE'
SCOPES
= ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE
= './service_account_key.json'

credentials
= ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE
, scopes=SCOPES)

client
= BusinesscommunicationsV1(credentials=credentials)

agents_service
= BusinesscommunicationsV1.BrandsAgentsService(client)

agent_name
= 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/verification'

update_request
= agents_service.UpdateVerification(
       
BusinesscommunicationsBrandsAgentsUpdateVerificationRequest(
            name
=agent_name,
            updateMask
='verificationState',
            agentVerification
=AgentVerification(verificationState=AgentVerification.VerificationStateValueValuesEnum.VERIFICATION_STATE_UNVERIFIED)
       
)
   
)

print(update_request)

如需了解格式设置和值选项,请参阅 brands.agents.updateVerification

营业地点验证

验证代理后,您可以验证与该代理关联的营业地点。在营业地点经过验证且关联的代理发布后,您便可以发布该营业地点,以便与相应代理搭配使用。

如果品牌是连锁店的一部分,您必须为该连锁店添加您有权启用消息功能的所有营业地点。如需验证您添加的所有营业地点,只需申请验证一个营业地点即可。验证该营业地点后,我们会自动验证您添加的其他关联的营业地点。

验证后,如果您添加其他营业地点,则需要再次请求营业地点验证。如果有任何营业地点未自动通过验证,请与我们联系,并提供商家和营业地点的详细信息。

验证前核对清单

在验证营业地点之前,请先使用以下核对清单找出在验证过程中可能出现的任何问题。

代理信息
代理验证

必需。验证代理的信息准确无误且代理可以代表关联的品牌。请参阅验证代理和营业地点

营业地点信息
地点 ID

必需。Google 商家信息数据库和 Google 地图中地点的唯一标识符。请参阅管理营业地点

允许的入口点

必需。仅当您使用 Business Communications API 创建代理时才需要检查。请参阅管理营业地点

前提条件

您需要先收集一些信息,然后才能验证代理:

  • 营业地点 name

    如果您不知道营业地点的名称,请参阅列出品牌的所有营业地点

  • 开发机器上的 GCP 项目的服务账号密钥的路径

验证营业地点

当您请求对营业地点进行验证时,Business Messages 会确认该营业地点与相关代理所代表的品牌相匹配。营业地点验证完成后,您会收到一封电子邮件。

营业地点一经验证,便无法更新。如需在营业地点经过验证后对其进行更新,与我们联系。(您必须先使用 Business Messages Google 账号登录。如需注册账号,请参阅在 Business Messages 中注册。)

如需验证营业地点,请运行以下命令。请将变量替换为前提条件中确定的值。


# This code requests a verification of a location.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/requestVerification

# Replace the __BRAND_ID__ and __LOCATION_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl
-X POST \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/locations/__LOCATION_ID__:requestVerification" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

/**
 * This code snippet requests a verification for a location.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/requestVerification
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */


/**
 * Edit the values below:
 */

const BRAND_ID = 'EDIT_HERE';
const LOCATION_ID = 'EDIT_HERE';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
 
'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async
function main() {
 
const authClient = await initCredentials();

 
const locationName = 'brands/' + BRAND_ID + '/locations/' + LOCATION_ID;

 
if (authClient) {
   
// Setup the parameters for the API call
   
const apiParams = {
      auth
: authClient,
      name
: locationName,
   
};

    bcApi
.brands.locations.requestVerification(apiParams, {}, (err, response) => {
     
if (err !== undefined && err !== null) {
        console
.dir(err);
     
} else {
       
// Agent found
        console
.log(response.data);
     
}
   
});
 
}
 
else {
    console
.log('Authentication failure.');
 
}
}

/**
 * Initializes the Google credentials for calling the
 * Business Messages API.
 */

 async
function initCredentials() {
 
// Configure a JWT auth client
 
const authClient = new google.auth.JWT(
    privatekey
.client_email,
   
null,
    privatekey
.private_key,
    scopes
,
 
);

 
return new Promise(function(resolve, reject) {
   
// Authenticate request
    authClient
.authorize(function(err, tokens) {
     
if (err) {
        reject
(false);
     
} else {
        resolve
(authClient);
     
}
   
});
 
});
}

main
();
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.Agent;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
 
/**
   * Initializes credentials used by the Business Communications API.
   */

 
private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
   
BusinessCommunications.Builder builder = null;
   
try {
     
GoogleCredential credential = GoogleCredential
           
.fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential
= credential.createScoped(Arrays.asList(
         
"https://www.googleapis.com/auth/businesscommunications"));

      credential
.refreshToken();

     
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
     
JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

     
// Create instance of the Business Communications API
      builder
= new BusinessCommunications
         
.Builder(httpTransport, jsonFactory, null)
         
.setApplicationName(credential.getServiceAccountProjectId());

     
// Set the API credentials and endpoint
      builder
.setHttpRequestInitializer(credential);
   
} catch (Exception e) {
      e
.printStackTrace();
   
}

   
return builder;
 
}

 
public static void main(String args[]) {
   
try {
     
// Create client library reference
     
BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

     
String locationName = "brands/BRAND_ID/locations/LOCATION_ID/verification";

     
BusinessCommunications.Brands.Locations.RequestVerification request
         
= builder.build().brands().locations().requestVerification(locationName,
               
new RequestLocationVerificationRequest());

     
System.out.println(request.execute().toPrettyString());
   
} catch (Exception e) {
      e
.printStackTrace();
   
}
 
}
}
此代码基于 Java Business Communications 客户端库

"""This code requests a verification of a location.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/requestVerification

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""


from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
   
BusinesscommunicationsBrandsLocationsRequestVerificationRequest,
   
RequestLocationVerificationRequest
)

# Edit the values below:
BRAND_ID
= 'EDIT_HERE'
LOCATION_ID
= 'EDIT_HERE'
SCOPES
= ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE
= './service_account_key.json'

credentials
= ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE
, scopes=SCOPES)

client
= BusinesscommunicationsV1(credentials=credentials)

locations_service
= BusinesscommunicationsV1.BrandsLocationsService(client)

location_name
= 'brands/' + BRAND_ID + '/locations/' + LOCATION_ID

verification_request
= locations_service.RequestVerification(BusinesscommunicationsBrandsLocationsRequestVerificationRequest(
        name
=location_name,
        requestLocationVerificationRequest
=RequestLocationVerificationRequest()
   
))

print(verification_request)

如需了解格式设置和值选项,请参阅 brands.locations.requestVerification

获取营业地点的验证状态

提交营业地点验证请求后,您可以查看营业地点的验证状态。

如需获取营业地点的验证状态,请运行以下命令。请将变量替换为前提条件中确定的值。


# This code gets the verification state of a location.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification

# Replace the __BRAND_ID__ and __LOCATION_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl
-X GET \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/locations/__LOCATION_ID__/verification" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

/**
 * This code snippet gets the verification state of a location.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification?hl=en
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */


/**
 * Edit the values below:
 */

const BRAND_ID = 'EDIT_HERE';
const LOCATION_ID = 'EDIT_HERE';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
 
'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async
function main() {
 
const authClient = await initCredentials();

 
const locationName = 'brands/' + BRAND_ID + '/locations/' + LOCATION_ID;

 
if (authClient) {
   
// Setup the parameters for the API call
   
const apiParams = {
      auth
: authClient,
      name
: locationName + '/verification',
   
};

    bcApi
.brands.locations.getVerification(apiParams, {}, (err, response) => {
     
if (err !== undefined && err !== null) {
        console
.dir(err);
     
} else {
       
// Agent found
        console
.log(response.data);
     
}
   
});
 
}
 
else {
    console
.log('Authentication failure.');
 
}
}

/**
 * Initializes the Google credentials for calling the
 * Business Messages API.
 */

 async
function initCredentials() {
 
// Configure a JWT auth client
 
const authClient = new google.auth.JWT(
    privatekey
.client_email,
   
null,
    privatekey
.private_key,
    scopes
,
 
);

 
return new Promise(function(resolve, reject) {
   
// Authenticate request
    authClient
.authorize(function(err, tokens) {
     
if (err) {
        reject
(false);
     
} else {
        resolve
(authClient);
     
}
   
});
 
});
}

main
();
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.Agent;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
 
/**
   * Initializes credentials used by the Business Communications API.
   */

 
private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
   
BusinessCommunications.Builder builder = null;
   
try {
     
GoogleCredential credential = GoogleCredential
           
.fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential
= credential.createScoped(Arrays.asList(
         
"https://www.googleapis.com/auth/businesscommunications"));

      credential
.refreshToken();

     
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
     
JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

     
// Create instance of the Business Communications API
      builder
= new BusinessCommunications
         
.Builder(httpTransport, jsonFactory, null)
         
.setApplicationName(credential.getServiceAccountProjectId());

     
// Set the API credentials and endpoint
      builder
.setHttpRequestInitializer(credential);
   
} catch (Exception e) {
      e
.printStackTrace();
   
}

   
return builder;
 
}

 
public static void main(String args[]) {
   
try {
     
// Create client library reference
     
BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

     
String locationName = "brands/BRAND_ID/locations/LOCATION_ID/verification";

     
BusinessCommunications.Brands.Locations.GetVerification request
         
= builder.build().brands().locations().getVerification(locationName);

     
System.out.println(request.execute().toPrettyString());
   
} catch (Exception e) {
      e
.printStackTrace();
   
}
 
}
}
此代码基于 Java Business Communications 客户端库

"""This code gets the verification state of a location.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/getVerification

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""


from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
   
BusinesscommunicationsBrandsLocationsGetVerificationRequest,
)

# Edit the values below:
BRAND_ID
= 'EDIT_HERE'
LOCATION_ID
= 'EDIT_HERE'
SCOPES
= ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE
= './service_account_key.json'

credentials
= ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE
, scopes=SCOPES)

client
= BusinesscommunicationsV1(credentials=credentials)

locations_service
= BusinesscommunicationsV1.BrandsLocationsService(client)

location_name
= 'brands/' + BRAND_ID + '/locations/' + LOCATION_ID + '/verification'

verification_state
= locations_service.GetVerification(BusinesscommunicationsBrandsLocationsGetVerificationRequest(
        name
=location_name
   
))

print(verification_state)

如需了解格式设置和值选项,请参阅 brands.locations.getVerification

后续步骤

验证代理和任何关联的营业地点后,您就可以发布相应代理和营业地点,使其能够与用户进行通信。