首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试调用Lifx并在一种情况下获取错误,而不是在另一种情况下获取错误

尝试调用Lifx并在一种情况下获取错误,而不是在另一种情况下获取错误
EN

Stack Overflow用户
提问于 2016-04-01 02:12:32
回答 1查看 97关注 0票数 1

好的,为了节省空间,我会发布代码的片段。其次,我不是Python程序员。我通常是C#。所以我尽了最大的努力,尤其是当我发现没有开关语句的时候。

因此,我有一种方法可以与对话,它工作得很好。

代码语言:javascript
复制
def GetAllLifxs(self):
        selector = 'all';

        uri = '%s%s' % (self._baseUri, selector)
        response = requests.get(uri, headers = self._headers)

        result = LifxProxyResult(999, {})
        if response:
            result = LifxProxyResult(response.status_code, json.loads(response.text))

        return result

上面的代码最终命中了API:https://api.lifx.com/v1/lights/all

我试图调用(这不是唯一有相同问题的方法)切换api调用。我尝试过几个不同的selectors,但仍然一无所获。

切换代码是这样的:

代码语言:javascript
复制
def ToggleLight(self, value, selectorType = 'all'):
        if not selectorType == 'all':
            if value == None:
                raise TypeError('[value] cannot be None.')

        typeSwitch = {
            'id': 'id:%s' % value,
            'label': 'label:%s' % value,
            'group_id': 'group_id:%s' % value,
            'group': 'group:%s' % value,
            'location_id': 'location_id:%s' % value,
            'location': 'location:%s' % value,
            'scene_id': 'scene_id:%s' % value
        }

        #If nothing just for fun Toggle ALL lights
        selector = '%s/toggle' % typeSwitch.get(selectorType, 'all')   

        uri = '%s%s' % (self._baseUri, selector)
        response = requests.get(uri, headers = self._headers)

        return response

三次尝试都有一个Response Code of 404。在每种情况下,ToggleLight方法都生成这些URL。

  1. https://api.lifx.com/v1/lights/label:DreLight/toggle
  2. https://api.lifx.com/v1/lights/id:d073d5127a6e/toggle
  3. https://api.lifx.com/v1/lights/all/toggle

当我调用ToggleLight方法时,它们都不起作用。但这是最关键的。当我将生成的URLs复制到这个普通的Python文件并运行它时,我会正确地操作灯光。

代码语言:javascript
复制
import requests

token = "MyMagicKeyHere"

headers = {
    "Authorization": "Bearer %s" % token,
}

response = requests.post('https://api.lifx.com/v1/lights/label:DreLight/toggle', headers=headers)

Python对我来说太新了,我不明白我的问题是什么。由于使用令牌工作和设置标头信息的函数对每个方法都是相同的,所以我认为不可能是这样。

谢谢你的第二双眼睛。做生意。

编辑:我把(生词)搞得很蠢。孩子们在这里的教训是,当你被困的时候走开,然后回来。再盯着看也没用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 03:43:46

问题似乎是在ToggleLight中调用一个ToggleLight,而不是requests.post,就像在独立程序中一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36346897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档