Branch.io, для каждого пользователя в моей базе данных создайте реферальную ссылку для моего приложения, чтобы я мог по электронной почте отправлять своим пользователям реферальную ссылку
Я знаю, что могу создавать реферальные ссылки в своем собственном приложении для данного пользователя.
т.е.
branch.setIdentity(userId);
const branchUniversalObject = await
branch.createBranchUniversalObject(..);
const { url } = await branchUniversalObject.generateShortUrl(linkProperties);
Но я хочу, чтобы для каждого пользователя в моей базе данных была создана уникальная реферальная ссылка. Не в моем мобильном приложении, а в веб-приложении администратора (которое написано на узле), чтобы я мог отправить всем своим пользователям электронные письма с их уникальными реферальными ссылками.
Сделал бы что-то вроде этого, если бы был пакет узла, но нет
users.forEach(user => {
branch.setIdentity(user.userId);
const branchUniversalObject = await branch.createBranchUniversalObject(..);
const { url } = await branchUniversalObject.generateShortUrl(linkProperties);
saveUserReferalLink(user, url);
});
Я смотрю на API
https://docs.branch.io/pages/apps/api/
но не совсем уверен, что мне нужно делать
создать ссылку с помощью https://api.branch.io/v1/url и установить пользователя в параметре stage?
Спасибо за любую помощь заранее
Обновить
По предположению Евгения Гайдамахи, в документации сказано следующее
Реферальные ссылки
- Создайте пользователя с $identity_id
- Создайте ссылку с $identity_id из шага 1 в словаре данных ссылки
Однако я изо всех сил пытался создать пользователя. Документация предлагает создать пользователя, как показано ниже
curl -XPOST https://api.branch.io/v1/profile \
-d '{
"branch_key":"MY_KEY",
"identity":"steve",
"identity_id":"444"
}'
Вопрос в том, каким должен быть identity_id на самом деле? 444, например, не работает, он не будет создавать пользователя. Идентификатор 12345678 работает, но в итоге создает пользователя на вкладке удостоверений на вкладке liveview панели мониторинга с датой 2014-05-28, идентификатор, по-видимому, зависит от времени. В идеале я бы вообще не передавал identity_id, он бы автоматически генерировал его, как это делает setIdentity('steve').
Затем я обнаружил эту статью, в которой говорится, что мне вообще не нужно создавать пользователя, но я передаю свою идентификационную информацию по ссылке, то есть "steve" в приведенном выше примере, в качестве идентификатора разработчика филиала, и что при отсутствии identity_id (ID идентификации филиала), связанный с личностью, будет создан новый.
Что здорово, я попробовал, и это работает, единственная проблема сейчас в том, что вновь созданный пользователь не отображается на вкладке "идентификаторы" в liveview. Я знаю, что пользователь существует, потому что, если я выполняю пользовательскую идентификацию чтения, передавая, например, "steve", я получаю ответ с новым "identity_id" (Branch Identity ID).
Подводя итог мои вопросы
Каким должен быть идентификатор_идентификатора (идентификационный номер филиала) при создании нового пользователя?
Почему новые пользователи не отображаются на вкладке "идентичности" в режиме реального времени, когда я создаю новую ссылку и передаю идентификационные данные разработчика?
1 ответ
Чтобы создать реферальную ссылку через API, вам потребуется создать идентификатор_идентификатора пользователя в соответствии с документацией Branch (или иметь идентификационный номер под рукой), а затем включить $identity_id в словарь данных, например, так:
curl -XPOST https://api.branch.io/v1/url \
-d '{
"branch_key": "YOUR_BRANCH_KEY",
"channel": "facebook",
"feature": "onboarding",
"campaign": "new product",
"stage": "new user",
"tags": ["one", "two", "three"],
"data": {
"$identity_id": "444",
"$canonical_identifier": "content/123",
"$og_title": "Title from Deep Link",
"$og_description": "Description from Deep Link",
"$og_image_url": "http://www.lorempixel.com/400/400/",
"$desktop_url": "http://www.example.com",
"custom_boolean": true,
"custom_integer": 1243,
"custom_string": "everything",
"custom_array": [1,2,3,4,5,6],
"custom_object": { "random": "dictionary" }
}
}'