小编O.V*_*hor的帖子

Twitch OAuth access_token 而不是 Bearer 令牌

Twitch 有新的 API 和 V5 API,我想完全使用 V5 API,因为那个 API 提供了更多关于频道的信息。当我使用浏览器开发工具中的评估令牌时,API 正在工作。

在此处输入图片说明

但是当我使用通过 Omniauth 授权获得的asset_token 时,API 无法正常工作,并且{"error":"Gone","status":410,"message":"It's time to kick ass and serve v3... and I'm all outta v3. See https://dev.twitch.tv/docs"}经常出现类似错误。文档说 V5 API 仍在工作(尽管已弃用)。

在此处输入图片说明

Helix 和 Kraken API 具有不同类型的令牌(BearerOAuth

在此处输入图片说明

如何OAuth在用户身份验证后准确获取access_token 以便能够使用 V5 API?来自浏览器开发工具的令牌与新 API 和 V5 API 一样工作,但从 Omniauth 获得的令牌仅适用于新 API。

解决了

访问令牌可用于新 API 和 V5 API。使用 V5 API 只需要在请求中添加Accept标头application/vnd.twitchtv.v5+json

api twitch twitch-api

5
推荐指数
0
解决办法
661
查看次数

使用 HttpResponse 返回文件

下午好。我需要以excel格式从数据库下载数据。下面,当我尝试通过 Firefox 下载文件时,我的代码及其工作正常,但是使用 chrome 这个视图返回包含一些openpyxl文件的存档。Openpyxl- 这个库我用来从excel_download()函数中的数据库填充excel表。你能帮我解决吗?

def excel_download_view(request, **kwargs):
    if 'sorting_argument' in kwargs:
        queryset = Lot.objects.filter(
            Q(bank__slug__iexact=kwargs['sorting_argument']) |
            Q(auction_date__iexact=kwargs['sorting_argument']) |
            Q(which_time_auction__iexact=kwargs['sorting_argument']) |
            Q(fgvfo_number__iexact=kwargs['sorting_argument']) |
            Q(prozorro_number__iexact=kwargs['sorting_argument']) |
            Q(decision_number__iexact=kwargs['sorting_argument'])
        )
    else:
        queryset = Lot.objects.all()

    excel_download(queryset)

    data = None

    with open('media/excel/lots.xlsx', 'rb') as f:
        data = f.read()

    return HttpResponse(data, content_type='application/vnd.ms-excel')
Run Code Online (Sandbox Code Playgroud)

python django

4
推荐指数
1
解决办法
6448
查看次数

Instagram用户页面解析(使用代理,不使用API​​)

我需要在没有API和代理的情况下解析instagram用户页面,并且我使用如下代码

def client(options = {})
  Faraday.new('https://www.instagram.com', ssl: { verify: false }, request: { timeout: 10 }) do |conn|
    conn.request :url_encoded
    conn.proxy options[:proxy]
    conn.adapter :net_http
  end
end

response = client.get('some_username/', proxy: URI('//111.111.111.111:8080'))

response.status # 302
response['location'] # "https://www.instagram.com/accounts/login/"
Run Code Online (Sandbox Code Playgroud)

但是以前,就在几天前,上面的代码按预期工作,即返回200状态和带有用户页面的正文。此外,Faraday.get('https://www.instagram.com/some_username/')没有代理的代码可以正常工作,即返回200状态和带有用户页面的正文。我还尝试了其他客户端的相同操作,并且在没有代理的情况下取得了相同的成功,并使用它进行了重定向。

客户端需要一些其他特定的配置来使用代理,也许吗?

更新

我不确定,但这似乎是代理的问题,例如instagram以某种方式检测到已购买/免费的代理,并从多数民众赞成代理重定向请求(我已经使用了购买的代理包),因为我尝试使用我自己的代理,就可以了。

ruby proxy parsing instagram

2
推荐指数
1
解决办法
574
查看次数

标签 统计

api ×1

django ×1

instagram ×1

parsing ×1

proxy ×1

python ×1

ruby ×1

twitch ×1

twitch-api ×1