Adding a Subscriber
Function
This API is used to add a subscriber. If the subscriber is in the Unconfirmed status, the system sends a subscription confirmation message to the subscriber. After the subscriber clicks the subscription confirmation link, the subscriber status changes to Confirmed and a subscription cancellation message is sent to the subscriber so that the subscriber can cancel the subscription at any time. After the subscriber clicks the link to cancel the subscription, the subscriber status changes to Cancelled and a new subscription confirmation message is sent to the subscriber so that the subscriber can subscribe again. This API is a global API. When it is called, global authorization is required, meaning that the X-Auth-Token must be a domain-level token.
Calling Method
For details, see Calling APIs.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
URI
POST /v2/{domain_id}/subscription-users
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
domain_id |
Yes |
String |
Specifies the tenant's account ID. |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
X-Auth-Token |
Yes |
String |
This API is a global API. When it is called, global authorization is required, meaning that the X-Auth-Token must be a domain-level token. You can obtain it by calling the IAM API for obtaining a user token. The token is the value of X-Subject-Token in the response header. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
name |
Yes |
String |
Specifies the subscriber's name. |
|
group |
No |
Array of strings |
Specifies the subscriber's group. group can contain 1 to 32 characters, including only letters, digits, and underscores (_). group cannot start or end with an underscore, nor contain consecutive underscores. |
|
http |
No |
Specifies the endpoint address of the user who subscribes over the HTTP protocol. |
|
|
https |
No |
Specifies the endpoint address of the user who subscribes over the HTTPS protocol. |
|
|
sms |
No |
The subscriber endpoint specified when the SMS protocol is set for a subscription. This protocol can be set together with the voice notification protocol. The endpoints for them must be the same. |
|
|
|
No |
Specifies the endpoint address of the user who subscribes over the email protocol. |
|
|
|
No |
The subscription's endpoint when the WeCom group chatbot transmission protocol is used. |
|
|
dingding |
No |
The subscription's endpoint when the DingTalk group chatbot transmission protocol is used. |
|
|
feishu |
No |
The subscription's endpoint when the Lark group chatbot transmission protocol is used. |
|
|
welink |
No |
The subscription's endpoint when the WeLink group chatbot transmission protocol is used. |
|
|
callnotify |
No |
The subscriber endpoint specified when the voice notification protocol is set for a subscription. This protocol can be set together with the SMS protocol. The endpoints for them must be the same. |
|
|
ding_talk_bot |
No |
The subscription's endpoint when the DingTalk transmission protocol is used. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must start with http://. |
|
header |
No |
Map<String,String> |
Specifies the user-defined request header of the HTTP subscriber. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must start with https://. |
|
header |
No |
Map<String,String> |
Specifies the user-defined request header of the HTTPS subscriber. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be a phone number. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be an email address. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be the address of a WeChat group robot. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be the address of a DingTalk group robot. |
|
keyword |
No |
String |
Specifies the keyword customized by the user who subscribes over the DingTalk chatbot. Either keyword or sign_secret must be specified by such a subscriber. When you add a keyword for security verification on the DingTalk robot, keyword must be one of the keywords entered on the DingTalk. |
|
sign_secret |
No |
String |
Specifies the signature customized by the user who subscribes over the DingTalk chatbot. Either keyword or sign_secret must be specified by such a subscriber. When you add a keyword for security verification on the DingTalk robot, keyword must be one of the keywords entered on the DingTalk. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be the address of a Lark group robot. |
|
keyword |
No |
String |
Specifies the keyword of the user who subscribes over the Lark chatbot. Either keyword or sign_secret must be specified by such a subscriber. When you add a keyword for security verification on the Lark robot, keyword must be one of the keywords entered on the Lark. |
|
sign_secret |
No |
String |
Specifies the signature key field of a user who subscribes over the Lark chatbot. Either keyword or sign_secret must be specified by such a subscriber. When you add a keyword for security verification on the Lark robot, keyword must be one of the keywords entered on the Lark. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. It must be a WeLink group number. |
|
client_id |
Yes |
String |
Specifies client_id of the user who subscribes over the WeLink protocol. Obtain the value of client_id from WeLink. |
|
client_secret |
Yes |
String |
Specifies client_secret of the user who subscribes over the WeLink protocol. Obtain the value of client_secret from WeLink. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
Specifies the endpoint address. The value must be a phone number. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
endpoint |
Yes |
String |
The DingTalk enterprise user ID. |
|
app_key |
Yes |
String |
The appKey field of DingTalk. |
|
app_secret |
Yes |
String |
The appSecret field of DingTalk. |
|
robot_code |
Yes |
String |
The robotCode field of DingTalk. |
Response Parameters
Status code: 201
|
Parameter |
Type |
Description |
|---|---|---|
|
request_id |
String |
Specifies the unique request ID. |
|
id |
String |
Specifies the subscriber ID. |
Status code: 400
|
Parameter |
Type |
Description |
|---|---|---|
|
request_id |
String |
Unique ID of the request. |
|
error_code |
String |
Specifies the error code. |
|
error_msg |
String |
Specifies the error message. |
Status code: 403
|
Parameter |
Type |
Description |
|---|---|---|
|
request_id |
String |
Unique ID of the request. |
|
error_code |
String |
Specifies the error code. |
|
error_msg |
String |
Specifies the error message. |
Status code: 404
|
Parameter |
Type |
Description |
|---|---|---|
|
request_id |
String |
Unique ID of the request. |
|
error_code |
String |
Specifies the error code. |
|
error_msg |
String |
Specifies the error message. |
Status code: 500
|
Parameter |
Type |
Description |
|---|---|---|
|
request_id |
String |
Unique ID of the request. |
|
error_code |
String |
Specifies the error code. |
|
error_msg |
String |
Specifies the error message. |
Example Requests
This API is used to create a mail protocol subscription user named test.
POST https://{SMNGLOBAL_Endpoint}/v2/{domain_id}/subscription-users
{
"name" : "test",
"email" : {
"endpoint" : "xxx@example.com"
}
}
Example Responses
Status code: 201
OK
{
"request_id" : "4143732b537348ecb69688da56d629c4",
"id" : "e08d1d82a57a4772b353d85445cefd7b"
}
SDK Sample Code
The SDK sample code is as follows.
This API is used to create a mail protocol subscription user named test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.GlobalCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.smnglobal.v2.region.SmnglobalRegion; import com.huaweicloud.sdk.smnglobal.v2.*; import com.huaweicloud.sdk.smnglobal.v2.model.*; public class CreateSubscriptionUserSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new GlobalCredentials() .withAk(ak) .withSk(sk); SmnglobalClient client = SmnglobalClient.newBuilder() .withCredential(auth) .withRegion(SmnglobalRegion.valueOf("<YOUR REGION>")) .build(); CreateSubscriptionUserRequest request = new CreateSubscriptionUserRequest(); CreateSubscriptionUserRequestBody body = new CreateSubscriptionUserRequestBody(); CreateSubscriptionUserRequestEmailEndpointInfo emailbody = new CreateSubscriptionUserRequestEmailEndpointInfo(); emailbody.withEndpoint("xxx@example.com"); body.withEmail(emailbody); body.withName("test"); request.withBody(body); try { CreateSubscriptionUserResponse response = client.createSubscriptionUser(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
This API is used to create a mail protocol subscription user named test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdksmnglobal.v2.region.smnglobal_region import SmnglobalRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdksmnglobal.v2 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = GlobalCredentials(ak, sk) client = SmnglobalClient.new_builder() \ .with_credentials(credentials) \ .with_region(SmnglobalRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateSubscriptionUserRequest() emailbody = CreateSubscriptionUserRequestEmailEndpointInfo( endpoint="xxx@example.com" ) request.body = CreateSubscriptionUserRequestBody( email=emailbody, name="test" ) response = client.create_subscription_user(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
This API is used to create a mail protocol subscription user named test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" smnglobal "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smnglobal/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smnglobal/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smnglobal/v2/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth, err := global.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). SafeBuild() if err != nil { fmt.Println(err) return } hcClient, err := smnglobal.SmnglobalClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). SafeBuild() if err != nil { fmt.Println(err) return } client := smnglobal.NewSmnglobalClient(hcClient) request := &model.CreateSubscriptionUserRequest{} emailbody := &model.CreateSubscriptionUserRequestEmailEndpointInfo{ Endpoint: "xxx@example.com", } request.Body = &model.CreateSubscriptionUserRequestBody{ Email: emailbody, Name: "test", } response, err := client.CreateSubscriptionUser(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
|
Status Code |
Description |
|---|---|
|
201 |
OK |
|
400 |
Bad Request |
|
403 |
Unauthorized |
|
404 |
Not Found |
|
500 |
Internal Server Error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot