不幸的是,无法在Intercom.io中创建具有标签的用户,所以我尝试编写一些代码来查找内部通信中的现有标签,如果存在,则将用户添加到该标签,如果没有,则创建标签并将用户添加到该标签。通过查看python-intercom库的文档,我尝试了几种不同的变体,但是存在相互冲突的方法(Intercom.update_tag和Tag.update),而且都还没有起作用。
下面是在对讲机中创建用户的方式(这是有效的):
import time
from members.models import Member
from intercom import Intercom, Tag
Intercom.app_id = settings.INTERCOM_TEST_APP_ID
Intercom.api_key = settings.INTERCOM_TEST_API_KEY
member = Member.objects.get(email="exampleemail@example.com")
Intercom.create_user(
email=member.email,
user_id=member.email,
name="%s %s" % (member.first_name, member.last_name),
created_at=int(time.time()),
city_name=member.city,
last_seen_ip=member.last_ip,
)下面是我目前需要查找和创建或更新的标记,这不会触发错误,但不会成功地标记用户:
tag = Intercom.get_tag(name=member.referral_code)
if tag['id'] != None:
Intercom.update_tag(member.referral_code, "tag", user_ids=[member.pk])
else:
Intercom.create_tag(tag, "tag", user_ids=[member.pk])我也尝试了以下的变体,但得到错误“描述符‘更新’需要一个'dict‘对象,但收到一个'unicode':
if Tag.find_by_name(member.referral_code) != 0:
Tag.update(member.referral_code, "tag", user_ids=[member.pk])
else:
Tag.create(member.referral_code, "tag", user_ids=[member.pk])我需要做哪些更改才能使标记起作用?
发布于 2015-03-16 03:39:25
我叫杰夫,我是内部通信公司的客户成功工程师之一。不幸的是,内部通信-python库仍然在使用我们废弃的V1应用程序接口,这可能会在这里造成一些混乱。在该库更新为使用我们较新的REST API之前,我建议您使用python库并直接调用我们的requests。我只有很少的python经验,但像这样的东西应该会让你走上正确的道路。
import requests
from requests.auth import HTTPBasicAuth
import json
tags_url = 'https://api.intercom.io/tags'
app_id = 'YOUR_APP_ID'
api_key = 'YOUR_API_KEY'
headers = {'content-type': 'application/json', 'Accept': 'application/json'}
tag_name = 'My sweet tag'
# Get tags to then loop through
list_tag_response_as_json = requests.get(tags_url, auth=(app_id, api_key), headers=headers).json()
tag_names = [tag['name'] for tag in list_tag_response_as_json['tags']]
if tag_name not in tag_names
# Create a tag
tag_response = requests.post(tags_url, auth=(app_id, api_key), headers=headers, data={'name': tag_name})
# Tag users
tag_and_users = {'name':tag_name, 'users': [{'email': 'abc@example.com'}, {'email': 'def@example.com'}]}
tagged_user_response = requests.post(tags_url, auth=(app_id, api_key), headers=headers, data=tag_and_users)此外,如果您仍然有问题,请随时在对讲机中给我们打电话,我们可以在这方面为您提供帮助。
https://stackoverflow.com/questions/29053787
复制相似问题