Oauth 从Google plus服务器下载用户徽标
这是创作代码的一部分,来自谷歌的Plus用户名、lastname和用户徽标。我成功地得到了那个名字和姓氏。但生成的URL中的用户徽标在流中有0个可用字节。怎么了Oauth 从Google plus服务器下载用户徽标,oauth,Oauth,这是创作代码的一部分,来自谷歌的Plus用户名、lastname和用户徽标。我成功地得到了那个名字和姓氏。但生成的URL中的用户徽标在流中有0个可用字节。怎么了 // We have trusted token URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + token);
// We have trusted token
URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + token);
/*
Open connection
*/
try {
authConnection = (HttpURLConnection) url.openConnection();
if (authConnection == null)
throw new NullPointerException("Null");
// 10 second timeout
authConnection.setConnectTimeout(AUTH_TIMER);
} catch (Exception e) {
String message = "Connecton problem with Google: " + e;
throw new Exception(message);
}
try {
server_response_code = authConnection.getResponseCode(); //
} catch (Throwable e) {
final String message = "No response: " + e;
throw new IOException(message);
}
logcat.LogD(this, "Response code is: " + server_response_code);
switch (server_response_code) { // Анализ кода ответа
case 200: // Successful
// get stream
is = authConnection.getInputStream();
if (is == null) {
final String detailMessage = "No stream";
throw new NullPointerException(detailMessage);
}
// Непосредственное чтение
final String jsonResponse;
try {
// reciving data from google plus by token
jsonResponse = readResponse(is);
if (jsonResponse == null) throw new NullPointerException("Null");
} catch (Throwable e) {
final String message = "Json error - Google: " + e;
throw new IOException(message);
}
// Разбор полученных данных
name = getFirstName(jsonResponse);
if (name == null) name = "<неизвестно>";
logcat.LogE(this, "Извлечено имя пользователя: " + name);
family_name = getFamilyName(jsonResponse);
if (family_name == null) family_name = "<неизвестно>";
logcat.LogE(this, "Извлечена фамилия пользователя: " + family_name);
photoURL = getPhoto(jsonResponse); // Получение ссылки на логотип на серверах Google
String message1 = ""
+ "Извлечен путь к логотипу пользователя: "
+ logcat.safe_string(photoURL, "<пустое значение>");
logcat.LogE(this, message1);
if (mAuthorizationTimer != null) { // Останавливаем таймер авторизации
mAuthorizationTimer.cancel();
mAuthorizationTimer = null;
logcat.LogD(this, "Таймер контроля авторизации остановлен успешно...");
}
// Если в главной активности отсутствует логотип (взятый из кэш по email) - грузим из интернет
if ((photoURL != null)) {
logcat.LogD(this, "Считываю логотип из интернет");
try { // Считывание логотипа из интернет
URL url_photo = new URL(photoURL);
logcat.LogD(this, "Открыт канал к логотипу...");
InputStream content = (InputStream) url_photo.getContent();
// THIS IS PROBLEM - avalable() - 0 bytes
if (content.available() > 0) {
photo = Drawable.createFromStream(content, "src");
logcat.LogD(this, "Успешно создано изображение...");
} else {
photo = null;
logcat.LogD(this, "Логотип пуст...");
}
} catch (Throwable e) {
final String message = "Ошибка открытия пользовательского логотипа из интернет: " + e;
logcat.LogE(this, message);
photo = null;
}
}
if (is != null) is.close();
// Создаем новый блок данных пользователя на основе данных серверов Google
mUser = new UserAuthData(this.getEmail(), name, family_name, photo);
//我们有可信令牌
URL=新URL(“https://www.googleapis.com/oauth2/v1/userinfo?access_token=“+代币);
/*
开放连接
*/
试试{
authConnection=(HttpURLConnection)url.openConnection();
if(authConnection==null)
抛出新的NullPointerException(“Null”);
//10秒超时
setConnectTimeout(AUTH_定时器);
}捕获(例外e){
String message=“与谷歌的连接问题:”+e;
抛出新异常(消息);
}
试试{
服务器响应代码=authConnection.getResponseCode();//
}捕获(可丢弃的e){
最终字符串消息=“无响应:”+e;
抛出新IOException(消息);
}
logcat.LogD(该“响应代码为:”+服务器响应代码);
开关(服务器响应代码){//Ааззаааааааа
案例200://成功
//获取流
is=authConnection.getInputStream();
如果(is==null){
最终字符串detailMessage=“无流”;
抛出新的NullPointerException(detailMessage);
}
// Непосредственное чтение
最终字符串jsonResponse;
试一试{
//通过令牌从google plus接收数据
jsonResponse=readResponse(is);
如果(jsonResponse==null)抛出新的NullPointerException(“null”);
}捕获(可丢弃的e){
最后一个字符串message=“Json错误-谷歌:”+e;
抛出新IOException(消息);
}
// Разбор полученных данных
name=getFirstName(jsonResponse);
如果(name==null)name=“”;
logcat.LogE(这是“名称”);
family_name=getFamilyName(jsonResponse);
如果(family_name==null)family_name=“”;
logcat.LogE(这是“姓”);
photoURL=getPhoto(jsonResponse);//谷歌
字符串message1=“”
+ "Извлечен путь к логотипу пользователя: "
+logcat.safe_字符串(photoURL,“”);
logcat.LogE(这个,消息1);
如果(mAuthorizationTimer!=null){//
mAuthorizationTimer.cancel();
mAuthorizationTimer=null;
logcat.LogD(这是“thotаааааааааааааааааааа107;
}
//电子邮箱
如果((photoURL!=null)){
logcat.LogD(这是“Сччаааззаааззззааа107;
试试看
URL\u photo=新URL(photoURL);
logcat.LogD(这是一个“logcat.LogD”(即“logcat.LogD”);
InputStream内容=(InputStream)url_photo.getContent();
//这是一个问题-Available()-0字节
如果(content.available()>0){
photo=Drawable.createFromStream(内容,“src”);
logcat.LogD(这是一个“logcat.LogD…”);
}否则{
photo=null;
logcat.LogD(这是“logcat.LogD…”);
}
}捕获(可丢弃的e){
最终字符串消息=“e”;
logcat.LogE(这个,消息);
photo=null;
}
}
如果(is!=null)是.close();
//谷歌
mUser=newuserauthdata(this.getEmail(),姓名,姓氏,照片);