跳转到主要内容

Misfit API客户端实现

项目描述

python-misfit

Build Status Coverage Status Requirements Status Documentation Status

Misfit API Python客户端实现

需求

  • Python >= 2.6, Python >= 3.3, 或 PyPy。您可以从此处下载

  • Pip。如果您有Python >= 2.7.9或>= 3.4,则您已经安装了pip。否则,请按照这些说明

安装

一旦满足上述要求,请从终端运行以下命令进行安装

pip install misfit

快速入门

使用 pip install misfit 安装

创建一个应用程序,将“应用程序域”设置为http://127.0.0.1:8080/。现在使用以下命令中的“应用程序密钥”和“应用程序密钥”

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

这将在名为“misfit.cfg”的文件中保存进行进一步API调用所需的凭据。应保持这些凭据的隐私性。您可以使用相同的命令行客户端访问资源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'}

慢速入门

在您安装并创建misfit应用程序之后,您可以使用自己的Web服务器而不是内置的CherryPy服务器来授权和使用API,如下所示

>>> 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>中指定的端点时,您将收到可以传递给fetch_token方法的codestate GET参数,该方法将返回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'}

通知

此库还包括一些基本工具,以简化通知处理。要使用Misfit的Notification API与您的Web应用程序集成,您需要做的第一件事是为您创建应用时指定的域名设置一个端点,以接受POST请求,例如,如果您的应用域名是 http://example.com,则端点可以是 http://example.com/misfit/notification/

现在,当您处理请求时,只需创建一个带有请求体作为参数的 MisfitNotification 对象。 MisfitNotification 构造函数会自动验证SNS消息的签名,因此您可以放心,消息是合法的。如果签名无效,它将引发 cryptography.exceptions.InvalidSignature 异常。

MisfitNotification 类可以处理订阅确认消息和常规更新消息。您可以通过查看 Type 属性来检查消息类型,该属性将是 'SubscriptionConfirmation''Notification'。对于 Notification 消息,您将在 Message 属性中找到一个更新列表。在处理更新(最长不超过 15秒)之后,请确保以HTTP状态码200响应,否则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

一旦您的端点启动并运行,请转到您的 应用,将端点作为订阅钩子URL添加,确保格式为json。点击“测试端点”,如果一切顺利,验证应无缝进行。如果不成功,请 提交一个问题,我们将尝试帮助您调试。现在,打开您想要接收的所有资源,然后点击“更新”。很快,您将开始收到Misfit通知!

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面