开发
开发
选择平台

账户绑定

您可以在系统内的用户账户与其 Meta 账户间设置账户绑定。这授予了系统访问用户别名的权限,即用户的 Meta 账号和组织内编号(此为用户在您团队的各 Meta Quest 应用中的身份证明)。

基于年龄的功能限制

开发应用时,请考虑以下与年龄有关的限制:
  • 13 岁以下儿童用户(10-12 岁):无论您应用的自我认证状态如何,13 岁以下的儿童用户都无法访问此平台 SDK 功能。对这个不支持的功能实施错误处理,为儿童用户提供安全愉快的体验。

开始绑定账户

本指南将涵盖在开发者面板中设置账户绑定的方法、用户体验以及获取编号和别名所需的步骤。如需使用账户绑定功能,您需要在开发者面板中设好一个应用程序,且拥有用户账户或模拟用户账户。

1.在开发者面板中注册您的登录网址

如需为您的应用设置账户绑定,您必须首先在开发者面板中注册一个单点登录 (SSO) URI。
  1. 登录开发者面板。从左侧导航面板导航至团队 > SSO
  2. 在提供的框中填入您的登录 URI,然后点击提交

2.创建一个账户绑定用户界面,并将用户引导至 Meta

您应该在您的应用或网站上为用户提供一个按钮(或其他用户界面),以便他们选择将您系统中的账户与其 Meta 账户进行绑定。
当用户点击该按钮(或通过其他用户界面触发选择绑定其账户操作)时,您应按照以下 URI 将他们重定向到 Meta,并指定您已注册的单点登录 URI 和您的 Meta Quest 团队编号作为查询参数:
https://auth.oculus.com/sso/?redirect_uri={yourLoginURL}&organization_id={yourMetaQuestOrganizationID}
如有需要,用户先登录 Meta Quest,然后确认他们想要绑定的账户。
以下图片展示了用户看到的账户绑定体验示例:
当用户点击绑定账户按钮时,您应该通过向以下 URI 发送一个 GET 请求来将其重定向:
https://auth.oculus.com/sso/?redirect_uri=https://someloginuri.com/oa&organization_id=1234567812345678

3.提取授权码和用户编号

当 Meta Quest 将用户重定向到您的登录 URI 时,该 URI 附有经 Base-64 编码的 JSON 数据。此 JSON 包含授权码和有作用域的用户编号,您可利用它们来获取一个 OAuth 令牌。该 URI 的构成如下:
{yourLoginURL}#{base-64EncodedJSON}
例如:
https://someloginuri.com/oa#1234ImCiAib3JnLXNjb3BlZF9pZCI6ICIxMjM0NTY3ODEyMzQ1Njc4Igp9
解码后结果如下:
{
 "code":"somecode",
 "org-scoped_id": "1234567812345678"
}
确保在您的系统中保存用户编号,以便您可以使用它来请求刷新令牌。

4.发送代码、用户编号以及授权信息以请求令牌

使用上一步中的信息以及应用编号和应用密钥来请求 OAuth 令牌。您的应用编号和应用密钥位于开发者面板中的开发 > API 中。您必须使用管理员账户才能从 API 页面访问应用密钥。
发送如下消息:
URI:https://graph.oculus.com/sso_authorize_code
方法:POST
示例消息:
POST https://graph.oculus.com/sso_authorize_code?code=somecode
 &access_token=OC|client-id|client-secret&org_scoped_id=user-id-for-your-org
参数:
参数参数类型描述
code
查询
从第 3 步解码结果中获得的访问码。
access_token
查询
格式为 OC|APPID|APPSECRET 的令牌,其中包含在 Meta Horizon 开发者面板开发 > API > 应用凭证下找到的应用编号和应用密钥。
org_scoped_id
查询
从第 3 步解码结果中获取到的有作用域的标识符。
成功响应的示例:
该 JSON 响应包含一个有效期为 30 天的 OAuth 令牌和刷新码。
{
    "oauth_token": "some-oauth-token",
    "refresh_code": "some-refresh-code"
}

5.使用 OAuth 令牌获取用户的编号和别名。

使用在上一步中接收到的 OAuth 令牌来请求获取用户的编号和别名。发送如下消息:
方法:GET
URI:https://graph.oculus.com/me
示例消息:
GET https://graph.oculus.com/me?access_token=some-access-token&fields=id,alias
参数:
参数参数类型描述
access_token
查询
在第 4 步中获取的 OAuth 令牌。
fields
查询
需检索的以逗号分隔的用户字段列表。唯一允许的值为 idalias
成功响应的示例:
该 JSON 响应包含用户的有作用域的编号以及他们的 Meta Quest 别名。
{
    "id": "1234567812345678",
    "alias": "gamertag"
}
您应该为用户存储 OAuth 令牌,并用其代表用户向 Meta Quest 发出请求。

6.在必要时使用刷新令牌

当 30 天有效期的 OAuth 令牌过期时,获取一个新的令牌。发送如下消息:
方法:POST
URI:https://graph.oculus.com/sso_authorize_refresh_code
示例消息:
POST https://graph.oculus.com/sso_authorize_refresh_code?
 access_token=AppSecretToken&org_scoped_id=some-id&refresh_code=refresh-code
参数:
参数参数类型描述
access_token
查询
格式为 OC|APPID|APPSECRET 的令牌,其中包含在 Meta Horizon 开发者面板开发 > API > 应用凭证下找到的应用编号和应用密钥。
org_scoped_id
查询
在向您登录网址发送的请求中包含的带作用域的标识符。
refresh_code
查询
第 4 步中的刷新码。
成功响应的示例:
该 JSON 响应包含一个有效期为 30 天的 OAuth 令牌以及另一个刷新码。
{
    "oauth_token": "some-oauth-token",
    "refresh_code": "some-refresh-code"
}