【问题标题】:400 (Bad Request) error when using Pushbullet Ephemerals使用 Pushbullet Ephemerals 时出现 400(错误请求)错误
【发布时间】:2015-06-04 23:24:26
【问题描述】:

我正在开发一个简单的命令行Pushbullet Python 项目,代码如下:

from settings import *
import urllib
import urllib2


def pushSms(number, message):
    url = 'https://api.pushbullet.com/v2/ephemerals'
    values = {
        "type": "push",
        "push": {
            "type": "messaging_extension_reply",
            "package_name": "com.pushbullet.android",
            "source_user_iden": settings["PUSHBULLET_USER_IDEN"],
            "target_device_iden": settings["PUSHBULLET_SMS_IDEN"],
            "conversation_iden": number,
            "message": message
        }
    }

    headers = {"Authorization" : "Bearer " + settings["PUSHBULLET_API_KEY"]}

    data = urllib.urlencode(values)
    req = urllib2.Request(url, data, headers)
    response = urllib2.urlopen(req)
    return response

示例用法可能是pushSms("555 555 5555", "Hi there!")。

这利用了 Pushbullet android 应用程序访问 SMS,如 here 所述。我检查了我的 settings 变量,它们都是有效的(事实上,它们目前正在使用在 another project of mine 中几乎与此完全相同的代码的 JavaScript 版本中。

我怀疑这是基本的 Python 语法/urllib2 误用或错误,但我已经盯着/谷歌搜索了几个小时,看不到我的错误。想法?

【问题讨论】:

    标签: python http urllib2 pushbullet


    【解决方案1】:

    我无法确定(来自服务器的响应可能包含更多信息),但由于我们接受表单编码和 json 请求,您可能需要将标头“Content-Type: application/json”设置为请求。

    如果不是这样,您能否发布 400 响应的正文?

    【讨论】:

    • 确认添加内容类型标头解决了这个问题。也就是说,使用requests 库比 urllib 容易得多...
    猜你喜欢
    • 2013-09-27
    • 2015-08-18
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多