内部通信api的django集成

aa-intercom的Python项目详细描述


travispypicoverallsrequiresio

用于Intercomapi的django集成

aa对讲机包允许

  • 将用户数据上载到对讲机,包括上次看到的功能
  • 根据应用程序中发生的任何事件将数据推送到对讲机API

安装

若要使用,请将aa_intercom添加到INSTALLED_APPS,然后迁移项目。

设置模型

a a对讲机需要在用户模型中设置几个字段。要使其工作,您需要应用 aa_intercom.mixins.IntercomUserMixin到您的自定义用户模型(如果您没有自己的自定义用户模型集, 检查documentation)。 可以重载IntercomUserMixin.get_intercom_data()方法来更改发送到内部通信api的默认用户数据。

如果要使用对讲机上的“用户上次看到”功能,请在用户登录后立即执行以下任务:

from aa_intercom.tasks import push_account_last_seen_tasks
push_account_last_seen_task.apply_async(args=[user.id], countdown=100)

配置

另一步是将事件类型添加到项目设置中,例如:

INTERCOM_EVENT_TYPES = (
  ("example", _("Example Type")),
  ("generic", _("Generic Type"))
)

最后一件事是在项目设置中指定对讲机凭据:

INTERCOM_API_ACCESS_TOKEN = "your access token"

确保有CACHES集合(请参见:docs), 而且由于这个应用程序使用Celery,您需要对其进行配置。

要为对讲机用户id提供id前缀,请将INTERCOM_ID_PREFIX设置为所需的值。

使用内部事件模型

如果要向内部通信api发送任何类型的事件数据,请创建一个intercovent的实例 所需信息,例如:

IntercomEvent.objects.create(
  user=request.user, type="generic", text_content=post.content,
  content_type=ContentType.objects.get_for_model(Post), object_id=post.id)

然后它将自动发送到内部通信api。不幸的是,内部通信API经常出现故障, 因此,要确保发送所有事件,请设置运行resend_intercom_events命令的cronjob 它将把所有剩余的interconnectevent对象推送到api。

发送未注册的用户数据

如果需要上载未注册的用户数据,aa_intercom.tasks.push_not_registered_user_data_task任务 可以使用(emailname键是必需的),例如:

push_not_registered_user_data_task.apply_async(args=[{
  "email": "test@arabel.la",
  "name": "Foo Bar",
  "pseudonym": "foobar"
}])

命令

  • resend_intercom_events-重新发送所有事件(如果出现问题,应长期运行)

支架

  • Django 1.11
  • Python2.7,3.6

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JBPM:无法部署进程存档:null   java将一个数组拆分为两个大小相等的数组   java Spring boot验证该字段是否为string类型   JAVA JPA保存到TSV而不是SQL   java PMD报告超过X个违规   java是否支持springdatagremlin中的自定义查询?   java在“for”循环后使用变量   JPQL中默认查询中的java错误列   如何在java中实现不同于线程的进程?   java如何检查字符串是否平衡?   xml使用xalan扩展在XSL中处理java集合   java我试图使用子类/超类重写另一个类的值   转换为JSON时出现java堆栈溢出问题   java考虑定义一个类型为“COM”的bean。实例演示。在您的配置中命令$DefaultIO   java在kubernetes中如何检索转发端口的值?   JavaEclipse,动态web项目,向类路径添加另一个eclipse项目   eclipse的java Spring上下文XML验证器?   Linux下利用MATLAB(Windows)生成Java包   Java:在存储到DDC之前验证属性   java校验字符串