You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity对接Parse Server实现自定义OAuth用户绑定报错问题求助

问题根因

Parse SDK的序列化模块不支持直接序列化自定义的DGUOAuth类对象,你把自定义类实例放到authData参数里时,SDK还没发起网络请求就抛出了编码异常,这也是服务端收不到请求、没有对应错误日志的原因。

解决方法

你需要把自定义类替换成Parse SDK可识别的Dictionary<string, object>结构存储授权信息,修改后的代码如下:

// 直接用嵌套字典存储授权数据,无需自定义DGUOAuth类
Dictionary<string, object> authData = new Dictionary<string, object>();
authData.Add("dguId", "25-1999");
authData.Add("access_token", "F12w06Ddqx1k5qj75JQWRZmzh16Zgf05wHExNnHAnh8");

System.Threading.CancellationToken canceltoken;

Dictionary<string, object> data = new Dictionary<string, object>();
data.Add("authData", authData); // 传入字典类型的授权数据

Debug.Log("Ready for linking the user!");

DataManager.user.LinkWithAsync("DGU", data, canceltoken).ContinueWith(t =>
{
    if (t.IsFaulted)
    {
        Debug.Log("Faulted: " + t.Exception);
        using (IEnumerator<Exception> enumerator = t.Exception.InnerExceptions.GetEnumerator())
        {
            if (enumerator.MoveNext())
            {
                ParseException error = (ParseException)enumerator.Current;
                Debug.Log(error.Message);
            }
        }
    }
    else
    {
        Debug.Log("User is linked");
    }
});

额外注意事项

  • 如果业务需要保留DGUOAuth类做本地数据存储,可以额外写个转换方法把类实例转成字典再传给SDK,不要直接传递自定义类对象。
  • ContinueWith的回调默认运行在非Unity主线程,如果你后续要在回调里操作Unity组件、资源,需要主动把逻辑抛回主线程执行,否则会触发线程安全异常。

内容的提问来源于stack exchange,提问作者Mansa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:24:01