好的我在这里推荐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()但我得到'无法解决'的错误。
答案 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服务”。