# 快捷获取 openid

> 来源：https://help.gravity-engine.com/docs/client-sdk/unity/advanced/quick-get-openid
> 介绍在没有自建后端的情况下，如何通过 Unity SDK 的 GravityHelper.GetOpenId 方法快捷获取微信、抖音、快手、B 站小游戏的 openid，包含后台凭据配置、调用流程、示例与参数说明。



部分客户的小游戏属于单机游戏，没有配套的后端开发人员或者服务器，这种情况下想获取 `openid` 就较为繁琐，因此引力 SDK 提供了快速获取小游戏 `openid` 的方法，Unity SDK 对应 `GravityHelper.GetOpenId` 方法，本文档对此进行说明。

微信、抖音、快手、B 站四个平台的调用方式完全一致，区别仅在于引力后台需要填写的凭据名称：微信、抖音、快手为 `AppSecret`，B 站为 `Secret Key`。如果您使用的是非 Unity SDK，请参考[小游戏 快捷获取 openid](/docs/client-sdk/mini-games/advanced/quick-get-openid)。

## 1. 前置要求 [#1-前置要求]

1. 在引力后台「设置 → 应用管理 → 配置」中对应的开发者选项卡里，添加小游戏的凭据：微信开发者、抖音开发者、快手开发者填 `AppSecret`，B站营销填 `Secret Key`。

2. 升级引力 SDK 到 [5.0.44](https://github.com/GravityInfinite/Turbo-Unity-Demo/releases) 及以上版本。

## 2. 调用流程 [#2-调用流程]

1. 先调用小游戏官方的 `login` 方法获取 `code`。

2. 再调用 `GravityHelper.GetOpenId` 方法发起网络请求获取 `openid`。

```csharp
// 先配置好回调
public class GetOpenIdCallbackImpl : IGetOpenIdCallback
{
    public void onFailed(string errorMsg)
    {
        Debug.Log("getOpenId failed  with message " + errorMsg);
    }

    public void onSuccess(Dictionary<string, object> responseJson)
    {
        Debug.Log("getOpenId success");
        Debug.Log("getOpenId call end");
        if (responseJson != null)
        {
            Dictionary<string, object> dataDict = (Dictionary<string, object>)responseJson;
            foreach (var kvp in dataDict)
            {
                Debug.Log("key " + kvp.Key + " : " + kvp.Value?.ToString());
            }
        }
    }
}

// 在小游戏官方 login 方法的回调内部发起调用
GravityHelper.GetOpenId(code, your_gravity_app_access_token, new GetOpenIdCallbackImpl());
```

关键参数说明：

| 参数                              | 说明                                                                            |
| ------------------------------- | ----------------------------------------------------------------------------- |
| `code`                          | 通过小游戏官方 `login` 方法获取的 code 值                                                  |
| `your_gravity_app_access_token` | 当前应用所对应的引力 AccessToken，可以在引力后台「设置 → 应用管理」页面获取（注意：不是小游戏官方的 Access Token，请不要混淆） |
| `GetOpenIdCallbackImpl`         | 获取完 `openid` 之后的 Callback 异步回调                                                |

3. 然后再继续按照 [Unity SDK 快速集成](/docs/client-sdk/unity/quickstart)启动引力引擎，正常进行其他流程。

> **注意**
> 方法返回的内容和对应平台官方文档返回的内容保持一致，具体请查看[小游戏 快捷获取 openid](/docs/client-sdk/mini-games/advanced/quick-get-openid)中各平台列出的官方文档中的返回值。
