Xero API 不提供内置的“登录并选择组织”弹出窗口。但是,您可以通过以下方法实现类似的功能:
以下是使用 Python 和 requests-oauthlib
库实现这一过程的示例:
from requests_oauthlib import OAuth2Session
# 配置您的 Xero 应用程序的客户端 ID 和客户端密钥
client_id = 'your_client_id'
client_secret = 'your_client_secret'
redirect_uri = 'your_redirect_uri'
# 创建 OAuth2 会话
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri)
# 获取授权 URL
authorization_url, state = oauth.authorization_url('https://login.xero.com/identity/connect/authorize')
# 让用户访问 authorization_url 并授权您的应用程序
print(f'请访问此链接并授权应用程序: {authorization_url}')
# 用户授权后,Xero 会将授权码发送到您的回调 URL
# 您需要从回调 URL 中提取授权码
authorization_response = input('请输入回调 URL: ')
# 使用授权码获取访问令牌和刷新令牌
token = oauth.fetch_token('https://identity.xero.com/connect/token', authorization_response=authorization_response,
client_secret=client_secret)
# 使用访问令牌调用 Xero API 以获取用户的组织列表
organizations = oauth.get('https://api.xero.com/api.xro/2.0/Organisations').json()['Organisations']
# 显示组织列表并让用户选择一个组织
for index, org in enumerate(organizations):
print(f'{index + 1}. {org["Name"]} ({org["OrganisationType"]})')
selected_org_index = int(input('请选择一个组织(输入组织编号): ')) - 1
selected_org = organizations[selected_org_index]
# 使用选定的组织进行后续操作
print(f'您选择了组织: {selected_org["Name"]}')
领取专属 10元无门槛券
手把手带您无忧上云