使用Windows Live/Xbox Live进行身份验证并使用其API的库

xbox-webapi的Python项目详细描述


Xbox WebAPI

Latest VersionDocumentation Statushttps://travis-ci.org/OpenXbox/xbox-webapi-python.svg?branch=masterDiscord chat channel

Xbox WebAPI是一个通过您的Microsoft帐户向Xbox Live进行身份验证的Python库,并提供与Xbox相关的Web API。

支持通过凭据或令牌进行身份验证,也可以使用双因素身份验证(2fa)。

依赖性

  • python>;=3.5
  • 库:请求、devjson、appdirs、urwid

如何使用

安装:

pip install xbox-webapi

身份验证:

# Token save location: If tokenfile is not provided via cmdline, fallback
# of <appdirs.user_data_dir>/tokens.json is used as save-location
#
# Specifically:
# Windows: C:\\Users\\<username>\\AppData\\Local\\OpenXbox\\xbox
# Mac OSX: /Users/<username>/Library/Application Support/xbox/tokens.json
# Linux: /home/<username>/.local/share/xbox
#
# For more information, see: https://pypi.org/project/appdirs and module: xbox.webapi.scripts.constants

xbox-authenticate --tokens tokens.json --email no@live.com --password abc123

# NOTE: If no credentials are provided via cmdline, they are requested from stdin
xbox-authenticate --tokens tokens.json

# If you have a shell compatible with ncurses, you can use the Terminal UI app
xbox-auth-ui --tokens tokens.json

回退身份验证:

# In case this authentication flow breaks or you do not trust the code with your credentials..
# Open the following URL in your web-browser and authenticate
https://login.live.com/oauth20_authorize.srf?display=touch&scope=service%3A%3Auser.auth.xboxlive.com%3A%3AMBI_SSL&redirect_uri=https%3A%2F%2Flogin.live.com%2Foauth20_desktop.srf&locale=en&response_type=token&client_id=0000000048093EE3

# Once you finished auth and reached a blank page, copy the redirect url from your browser address-field
# Execute the script with supplied redirect url
xbox-auth-via-browser 'https://login.live.com/oauth20_desktop.srf?...access_token=...&refresh_token=...'

API用法:

# Search Xbox One Catalog
xbox-searchlive --tokens tokens.json "Some game title"

# Search Xbox 360 Catalog
xbox-searchlive --tokens tokens.json -l "Some game title"

屏幕截图

在这里您可以看到auth tui(文本用户界面):

https://raw.githubusercontent.com/OpenXbox/xbox-webapi-python/master/assets/xbox_auth_tui_main.pnghttps://raw.githubusercontent.com/OpenXbox/xbox-webapi-python/master/assets/xbox_auth_tui_2fa.png

已知问题

  • 有许多缺少的XBL终结点

贡献

  • 报告错误/建议功能
  • 添加/更新文档
  • 添加其他Xbox Live终结点

学分

这个包使用Cookiecutteraudreyr/cookiecutter-pypackage项目模板的一部分。 认证代码基于joealcorn/xbox

有关从以下位置收集的终结点的信息:

免责声明

Xbox、Xbox One、SmartGlass和Xbox Live是Microsoft Corporation的商标。team openxbox绝不会得到微软公司或任何相关子公司、徽标或商标的认可或附属。

历史记录

1.1.7(2018-11-10)

  • 修复WindowsLive身份验证响应的分析

1.1.6(2018-09-30)

  • 考虑(xsts)userinfo的(user-)权限(可选)
  • 修复:始终为@property authenticationmanager.authenticated返回bool

1.1.5(2018-08-11)

  • 使authenticationmanager中的属性authenticated检查令牌有效性
  • 如果以前缓存过cookies,请提前退出Windows Live Auth

1.1.4(2018-07-01)

  • 为合作伙伴服务身份验证实现便利功能

1.1.3(2018-06-16)

  • 在错误的帐户密码下正常失败
  • 修复“valueerror:tui:按下意外按钮:取消”
  • provider.lists:更正标题,获取列表有效
  • titlehub:支持按xuid获取标题历史记录

1.1.2(2018-05-06)

    固定Appdir(又名Apdir)。令牌保存位置)在Windows上创建

1.1.1(2018-05-03)

  • 删除了python dateutil依赖项
  • 通过浏览器回退脚本添加身份验证
  • 小变动

1.1.0(2018-04-17)

  • auth:更新了2FA身份验证以满足当前的Windows Live身份验证流
  • auth:重新设计了2FA身份验证过程
  • auth:实现的xbox auth ui脚本(xbox.webapi.scripts.tui:urwid终端ui)
  • auth:对于密码屏蔽,使用getpass代替或raw input()
  • 脚本:如果没有通过cmdline参数提供的令牌文件,则默认为appdirs.user_data_dir(请参阅自述文件)

1.0.9(2018-03-30)

  • 扩展gameclips提供标题ID筛选和保存的剪辑的提供商
  • 添加屏幕截图提供商
  • 添加titlehub提供程序

1.0.8(2018-03-29)

  • 添加了userstats端点
  • 更新了自述文件

1.0.7(2018-03-28)

  • 支持通过stdin提供身份验证凭据
  • 为所有端点添加测试
  • 添加了验证测试
  • 添加了qcs端点
  • 添加了配置文件结束点
  • 添加了成就终结点
  • 添加了usersearch端点
  • 添加了gameclips端点
  • 添加了people端点
  • 添加了presence端点
  • 添加了消息端点
  • 已删除gamerpics终结点

1.0.3-1.0.6(2018-03-17)

  • 元数据更改

1.0.2(2018-03-17)

  • 更多元数据更改,现在可以在pypi上渲染了

1.0.1(2018-03-17)

  • 元数据更改

1.0.0(2018-03-17)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Double。将长位加倍到C#位转换器。ToDouble   java如何使用正则表达式从固定的Y位数中提取最后的X位数?   java如何显示ChatMessage类列表中的字符串消息属性?   java从JSON或XML提要导入数据,并在Android中创建列表   在整数之间使用按位AND运算符的java好处?   java从Android中的Bean类获取空值?   java会话id对另一台服务器意味着什么?   java未选择案例时开关的工作方式   java组织。openqa。硒。SessionNotCreatedException:无法创建新的远程会话。在emulator中初始化安卓驱动程序时   JavaSWT父和子对话框通信   java请确保java_HOME指向JDK而不是JRE   java用户即使在成功登录后也是匿名的   java控制器单元测试无法自动连接所需的bean   Java小程序类文件