不匹配的api客户端实现

misfit的Python项目详细描述


python不匹配

Build StatusCoverage StatusRequirements StatusDocumentation Status

不匹配的api python客户端实现

要求

  • python>;=2.6、python>;=3.3或pypy。您可以从here
  • 下载
  • 皮普。如果您有python>;=2.7.9或>;=3.4,那么您已经有了pip。否则,请按these instructions

安装

满足上述要求后,通过运行 从以下命令 terminal

pip install misfit

快速入门

pip install misfit安装

Create an app“应用程序域”设置为 http://127.0.0.1:8080/。现在使用下面的“app key”和“app secret” 命令:

misfit authorize --client_id=<app_key> --client_secret=<app_secret>

它将保存对文件进行进一步api调用所需的凭据。 称为“misfit.cfg”。这些证书应该保密。你可以用同样的 命令行客户端访问 Resource API。您还可以访问 使用python api的相同资源:

>>> from misfit import Misfit
>>> misfit = Misfit(<client_id>, <client_secret>, <access_token>)
>>> print(misfit.profile())
{u'gender': u'male', u'birthday': u'1981-07-18', u'userId': u'scrubbed', u'name': u'Brad Pitcher'}

慢速启动

安装后,created your misfit app 您可以对自己的web服务器而不是 内置Cherrypy服务器,如so:

>>> from misfit.auth import MisfitAuth
>>> auth = MisfitAuth(<client_id>, <client_secret>, redirect_uri=<redirect_uri>)
>>> auth_url = auth.authorize_url()

现在将用户重定向到auth_url。当控件返回到Web时 在<redirect_uri>中指定的端点上的服务器,您将收到 codestate获取可以传递给 fetch_token方法,它将返回access_token,即 需要进一步的api调用:

>>> access_token = auth.fetch_token(<code>, <state>)
>>> from misfit import Misfit
>>> misfit = Misfit(<client_id>, <client_secret>, <access_token>)
>>> print(misfit.profile())
{u'gender': u'male', u'birthday': u'1981-07-18', u'userId': u'scrubbed', u'name': u'Brad Pitcher'}

通知

这个库还包括一些基本的工具来简化通知处理。到 在web应用程序中使用misfit的通知api,首先 需要做的是设置一个端点来接受您所在域上的post请求 在创建应用程序时指定,例如 http://example.com/misfit/notification/如果您的应用程序域是 http://example.com

现在,当您处理请求时,只需创建一个MisfitNotification 对象,将请求的主体作为参数。这个 MisfitNotification构造函数自动验证 sns消息,让您在知道消息是 合法的。如果 签名无效。

MisfitNotification类处理两个订阅确认 消息和定期更新消息。您可以通过 查看Type属性,它可以是 'SubscriptionConfirmation''Notification'。为了一个 Notification消息,您将在 Message属性。在您处理更新后(可能需要 长于 15 seconds中) 确保以200的http状态响应,否则sns可能会尝试 再送一次。完整的工作流应该如下所示:

>>> from misfit.notification import MisfitNotification
>>> notification = MisfitNotification(content)
>>> if notification.Type == 'Notification':
>>>    for message in notification.Message:
>>>        if message.type == 'goals':
>>>            # Handle goal update
>>>        # Handle other message types
>>> # Give an empty response with a 200 status code

一旦您的端点启动并运行,请转到 app并将端点添加为订阅 钩子url,确保格式为json。点击“测试端点”,如果一切顺利 好吧,验证应该无缝进行。如果不是,请 file an issue我们会 试着帮你调试。现在打开你想要的所有资源 接收并点击“更新”。很快你就会收到不匹配的通知!

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

推荐PyPI第三方库


热门话题
java需要一种简单的方法来创建用于排序的comparator类   java getReadableDatabase和getWriteableDatabase无法解析   查找列表<Long>中与某个元素对应的所有索引的java方法   安卓将视图添加到ViewFlipper会导致java。StackOverflowerr语言   java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)   Android N中的Java8流API   自动生成Java策略文件的安全性   垃圾收集鼓励Java中的主要GC(但不是STW GC)   java如何检查UDP服务器上侦听的客户端数量   在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机   java如何使用Spring Boot创建部分代理   java是否有一个网站或资源可以完全比较EJB版本   java无需使用第三方库从gradle生成输出   继承由于这个多态性的基本示例中的语法有什么不同吗?(爪哇)   java字符串数组中的空字符串   java为什么CMS中的初始标记阶段是串行的   为什么Lucene有时与InChIKeys不匹配?   安卓通知Java应用程序数据库中的更改   java如何将单个json对象值解析为按钮   java打印堆栈将运行时错误跟踪到文件