使用Play服务进行身份验证时,getFirstName()属于哪个类

时间:2013-08-25 14:55:21

标签: android login oauth oauth-2.0 google-play-services

好的我在这里推荐Android-Google文档: http://developer.android.com/google/play-services/auth.html

它有这部分代码,它调用getFirstName()而不使用任何对象。我无法猜出要制作或实现/扩展的类的对象。

这是代码的一部分,其余部分都在该链接上:

URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + token);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
int serverCode = con.getResponseCode();
//successful query
if (serverCode == 200) {
    InputStream is = con.getInputStream();
    String name = getFirstName(readResponse(is)); //THIS LINE!!
    mActivity.show("Hello " + name + "!");
    is.close();
    return;
//bad token, invalidate and get a new one
} else if (serverCode == 401) {
    GoogleAuthUtil.invalidateToken(mActivity, token);
    onError("Server auth error, please try again.", null);
    Log.e(TAG, "Server auth error: " + readResponse(con.getErrorStream()));
    return;
//unknown error, do something else
} else {
    Log.e("Server returned the following error code: " + serverCode, null);
    return;
}

编辑:我想使用方法getFirstName()但我得到'无法解决'的错误。

1 个答案:

答案 0 :(得分:0)

如果您查看<android-sdk>/extras/google-play-services/samples/auth/AbstractGetNameTask.java,就可以看到getFirstname的定义:

private String getFirstName(String jsonResponse) throws JSONException {
  JSONObject profile = new JSONObject(jsonResponse);
  return profile.getString(NAME_KEY);
}
之前在该文件中定义了

NAME_KEY

private static final String NAME_KEY = "given_name";

如果您在Android SDK目录中找不到该文件,请打开Android SDK Manager并下载“Google Play服务”。