package com.douban.android;
import java.io.IOException;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import com.douban.android.util.DoubanUtil;
import com.douban.android.util.PreferencesUtil;
import com.google.gdata.client.douban.DoubanService;
import com.google.gdata.data.douban.UserEntry;
import com.google.gdata.util.ServiceException;
/**
* @author haiyang 获取token,并且进行保存
*/
public class ActivityAuthSuccess extends AbstractActivity {
DoubanService myService;
SharedPreferences settings;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
saveAccessToken();
saveUserInfo();
Intent intent = new Intent(ActivityAuthSuccess.this,
ActivityShowSaying.class);
startActivity(intent);
}
private String saveAccessToken() {
myService = new DoubanService("subApplication",
DoubanUtil.apiKey, DoubanUtil.secret, true);
String url = myService.getAuthorizationUrl(DoubanUtil.callback);
settings = getSharedPreferences(
PreferencesUtil.preferencesDouban, 0);
String requestToken = settings.getString(PreferencesUtil.oauthToken,
"false");
String requestTokenSecret = settings.getString(PreferencesUtil.oauthTokenSecret,
"false");
Log.i("jinyan", "requestToken=" + requestToken);
myService.setRequestToken(requestToken);
myService.setRequestTokenSecret(requestTokenSecret);
ArrayList<String> list = myService.getAccessToken();
String acessToken = list.get(0);
String acessTokenSecret = list.get(1);
Log.i("jinyan", "acessToken=" + acessToken);
Log.i("jinyan", "acessTokenSecret=" + acessTokenSecret);
settings.edit().putString(PreferencesUtil.acessToken, acessToken)
.putString(PreferencesUtil.acessTokenSecret, acessTokenSecret)
.commit();
return url;
}
/*
* 保存用户的信息,目前只先保存用户名
*/
private void saveUserInfo(){
Log.i("jinyan","saveUserInfo");
try {
DoubanService Service = getAuthDoubanService();
UserEntry userEntry= Service.getAuthorizedUser();
settings.edit().putString(PreferencesUtil.userName, userEntry.getUid()).commit();
Log.i("jinyan","saveUserInfo"+userEntry.getUid());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}