使用 Sendinblue API 设置类型 "category" 的联系人属性



使用sendinblue API,我想为新联系人启动双选择过程。使用文档中的示例代码可以很好地工作:

https://developers.sendinblue.com/reference/createdoicontact

const SibApiV3Sdk = require('sib-api-v3-sdk');
let defaultClient = SibApiV3Sdk.ApiClient.instance;
let apiKey = defaultClient.authentications['api-key'];
apiKey.apiKey = 'YOUR API KEY';
let apiInstance = new SibApiV3Sdk.ContactsApi();
let createDoiContact = new SibApiV3Sdk.CreateDoiContact(); // CreateDoiContact | Values to create the Double opt-in (DOI) contact
createDoiContact.email = "example@example.com";
createDoiContact.attributes = {"FNAME":"John","LNAME":"Doe"};
createDoiContact.includeListIds = [2];
createDoiContact.templateId = 1;
createDoiContact.redirectionUrl = "https://redirectionurl@yourdomain.com";
apiInstance.createDoiContact(createDoiContact).then(function() {
console.log('API called successfully.');
}, function(error) {
console.error(error);
});

但是我不知道如何为"类别"类型的联系人属性填充值。这些值可以有某些预定义的值,比如"性别",它可以有"男性"one_answers"女性"的值;和"diverse".

我试着

createDoiContact.attributes = {"GENDER": "male"};

createDoiContact.attributes = {"GENDER": [{ label: "male", value: 1 }] };

(我发现在API文档中用于更新联系人)

ChatGPT发现这个:

createDoiContact.attributes = { "GENDER": "male" };

或:

createDoiContact.attributes = { "GENDER": { "category": "male" } };

但是这些都不起作用。

sendinblue的支持给出了答案:

createDoiContact.attributes = { "GENDER": 1 };

其中1为以1开头的可能答案的个数,以此类推。

对于那些很难用PHP做到这一点的人来说,你必须将id作为字符串发送:

$createDoiContact['attributes'] = array('LANGUAGE' => '1');

最新更新