【问题标题】:Instagram API using Python使用 Python 的 Instagram API
【发布时间】:2016-02-24 14:32:58
【问题描述】:

我目前正在使用 Python 的 python-instagram 库在沙盒模式下使用 Instagram API。现在,我有一个应用程序及其关联的客户端 ID、客户端密码和访问令牌,以及一个连接的沙盒用户。

今天早些时候,我正在试验users/search 端点。首先,我直接使用他们的端点 URL 发送请求:

https://api.instagram.com/v1/users/search?q=XXXX&access_token=<my_access_token> 

XXXX 是我的 Instagram 应用程序的连接沙盒用户。这是生成的响应:

{"meta":{"code":200},"data":[{"username":"XXXX","bio":"Twitter: @XXXX","website":"","profile_picture":"https:a.jpg","full_name":"XXXX XXXX","id":"22222222"}]}

现在,我尝试使用python-instagram 库向同一端点发送请求,如下所示:

from instagram.client import InstagramAPI
access_token = <my_access_token>

api = InstagramAPI(client_secret='aaaa', access_token = access_token[0])
usr = api.user_search('XXXX')

print usr

但是,这是我在这种情况下得到的响应:

[User: XXXX]

当我尝试使用直接 URL 和 Python 库调用同一个端点时,为什么会得到不同的响应?

【问题讨论】:

    标签: python python-2.7 api instagram instagram-api


    【解决方案1】:

    python-instagram 所做的是,它将获取您在发出 HTTP 请求时获得的原始 JSON 响应,并将其映射到 python 对象。

    当您发出 print usr 时,您正在打印列表中的 User 对象,因此您会看到一个字符串 [User: XXXX]

    您可以找到他们用于用户对象here 的模型。它实际上是直接映射 Json 中的字段来获取属性。

    尝试使用以下代码检索用户名和 id:

    my_usr = usr[0]
    print 'User id is', my_usr.id, 'and name is ', my_usr.username
    

    【讨论】:

    • 完美!谢谢你。
    • 没问题。我喜欢使用 IPython 来处理基于对象的库(API 库经常这样做)。 IPython 允许很多有用的东西,包括自动完成。例如,您可以完成my_usr. 并按下制表键立即知道这些字段是什么。你也可以使用dict(my_usr),但它不是那么漂亮。
    • 确实,使用交互式 python 自动完成功能可以让您每次都深入了解当前对象/方法的有效性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多