gpt4 book ai didi

Android + App 引擎 : user. getUserID() 在端点中为空

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:02 25 4
gpt4 key购买 nike

我有一个带有 GAE 服务器的 Android 应用程序。我尝试按照 developers.google.com 上的描述对用户进行身份验证,我将用户参数添加到端点方法等。我得到一个不为 null 的用户,但此方法 getUserId() 返回 null。它类似于这个,相当古老的问题: Function User.getUserId() in Cloud endpoint api returns null for a user object that is not null但我仍然不知道如何解决它。你如何处理这个错误?你遇到过吗?

在 android 客户端中,这是我所做的(简化):

credentials = GoogleAccountCredential.usingAudience(getApplicationContext(),         "server:client_id:" + WEB_CLIENT_ID);
credentials.setSelectedAccountName(accountName);
WarriorEntityEndpoint.Builder endpointBuilder = new WarriorEntityEndpoint.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credentials);
warriorEntityEndpoint = endpointBuilder.build();

new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
warriorEntityEndpoint.getWarrior().execute();
} catch (Exception e) {
}
return null;
}
}.execute();

在 GAE 上:

@Api(name = "warriorEntityEndpoint", namespace = @ApiNamespace(ownerDomain = "szpyt.com", ownerName = "szpyt.com", packagePath = "mmorpg.monsters"),
version = "version1",
scopes = {"https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"},
clientIds = {Constants.ANDROID_CLIENT_ID, Constants.WEB_CLIENT_ID},
audiences = {Constants.ANDROID_AUDIENCE})
public class WarriorEntityEndpoint {
private static final Logger log = Logger.getLogger(WarriorEntityEndpoint.class.getName());
@ApiMethod(name = "getWarrior")
public WarriorEntity getWarrior(User user) throws OAuthRequestException, IOException {
log.log(Level.SEVERE, "this gives correct email: " + user.getEmail());
log.log(Level.SEVERE, "this is null: " + user.getUserId());

我还有另一个非常重要的问题:如果 getMail() 给了我正确的帐户,但 getUserId() 给了 null,这个用户是否经过身份验证?我读到如果未通过身份验证,用户对象应该为空,但我不确定了......我正在使用 App Engine SDK 1.8.7。我在部署到 GAE 的真实设备和后端上进行测试。

最佳答案

我刚才问了同样的问题,得到了答案。见链接:

Function User.getUserId() in Cloud endpoint api returns null for a user object that is not null

原因是应用引擎上的错误。

关于Android + App 引擎 : user. getUserID() 在端点中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19948378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com