Weibo.java
Кода -копия выглядит следующим образом:
@Override
Защищенная void oncreate (Bundle SavedInstanceState) {
Super.oncreate (saveInstanceState);
setContentView (r.layout.user_center);
// Создать экземпляр Weibo
mweiboauth = new weiboauth (это, constants.app_key,
Constants.redirect_url, constants.scope);
// Создать пример интерфейса обмена Weibo
mweiboshareapi = weibosharesdk.createweiboapi (это, constants.app_key);
// Когда деятельность повторно повторно (активность находится на заднем плане, оно может быть убито из -за недостаточной памяти),
// Вам нужно позвонить в {@link iweboshareapi#handleboresponse}, чтобы получить данные, возвращаемые клиентом Weibo.
// выполнение успешно, вернуть True и Call {@link iweibohohandler.response#onresponse};
// Невозможность вернуть ложь, обратный вызов выше
if (saveInstanceState! = null) {
mweiboshareapi.handleweiboresponse (getintent (), это);
}
}
/**
* Проверьте, установил ли пользователь Sina Weibo
*/
public void isnotinstall () {
пытаться {
// Проверьте, является ли среда клиента Weibo нормальной.
if (mweiboshareapi.checkenvironment (true)) {
// Зарегистрируйте стороннее заявление на клиент Weibo.
// Однако разрешения на интеграцию и совместное использование этого столбца вложения требуют приложения о сотрудничестве.
mweiboshareapi.registerapp ();
StartsInashare ();
}
} catch (weiboshareexception e) {
e.printstacktrace ();
Toast.maketext (usercenter.this, e.getmessage (), toast.length_long)
.показывать();
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Категория обратного вызова аутентификации и авторизации Weibo. 1. При авторизации SSO вам нужно позвонить в {@link #onactivityResult}
* {@link ssohandler#AuthorizeCallback}, обратный вызов будет выполнен. 2. Не-SSO
* Когда разрешение будет предоставлено, обратный вызов будет выполнен после завершения разрешения. Когда разрешение будет успешным, сохраните access_token, expires_in, UID и другая информация
* SharedPreferences в.
*/
класс Authlistener реализует weiboauthlistener {
@Override
public void Oncomplete (значения пакета) {
// проанализировать токен из пакета
maccesstoken = oauth2accesstoken.parseaccesstoken (values);
if (maccesstoken.issessionvalid ()) {
// Сохранить токен в SharedPreferences
Accesstokenkeeper.writeaccesstoken (usercenter.this,
Maccesstoken);
sendmessage ();
}
}
@Override
public void oncancel () {
}
@Override
public void onweiboexception (weiboexception e) {
Toast.maketext (usercenter.this,
"Auth Exception:" + e.getMessage (), toast.length_long)
.показывать();
}
}
/**
* Авторизация пользователя Sina Weibo
*/
public void StartsInashare () {
mssohandler = новый ssohandler (usercenter.this, mweiboauth);
// Читать информацию, такую как AccestToken, которая была сохранена в прошлый раз от SharedPreferences.
maccesstoken = accesstokenkeeper.readaccesstoken (это);
// Если токен действителен, позвоните и отправьте Weibo напрямую
if (maccesstoken.issessionvalid ()) {
sendmessage ();
} еще {
mssohandler.authorize (new aylistener ());
}
}
/**
* @See {@link Activity#onnewintent}
*/
@Override
Защищенный void onnewintent (намерение) {
Super.onnewintent (намерение);
// После вызова Weibo из текущего приложения и обмена его, когда возвращается в текущее приложение, вам необходимо вызвать эту функцию здесь
// Получить данные, возвращаемые клиентом Weibo;
// {@link iweibohandler.response#onresponse};
mweiboshareapi.handlewewiboresponse (намерение, это);
}
/**
* Когда выходит действие по авторизации SSO, функция вызывается.
*
* @see {@link Activity#OnActivityResult}
*/
@Override
Protected void OnActivityResult (int requestCode, int resultCode, Data Data) {
Super.OnactivityResult (requestCode, ResultCode, Data);
// SSO авторизация обратный вызов
// Важно: деятельность, которая инициирует вход в SSO, должен быть переписывается oNACTIVITIONSULTULT
if (mssohandler! = null) {
mssohandler.authorizecallback (requestCode, ResultCode, Data);
}
}
/**
* Получение данных, запрошенных микро-клиентами. Когда клиент Weibo вызывает текущее приложение и обменивается его, метод вызывается.
*
* @param baserequest
* Объект данных запроса WEIBO
* @see {@link iweiboshareapi#harderweiborequest}
*/
@Override
public void onresponse (baseresponse baseresp) {
Switch (baseresp.errcode) {
case wbconstants.errorcode.err_ok:
if (publicfun.sharecondition ()) {
Gainbobi ();
} еще {
Toast.maketext (это, r.string.share_success, toast.length_long)
.показывать();
}
перерыв;
case wbconstants.errorcode.err_cancel:
перерыв;
case wbconstants.errorcode.err_fail:
Toast.maketext (это, r.string.errcode_deny, toast.length_long)
.показывать();
перерыв;
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Стороннее приложение отправляет сообщение запроса в Weibo и вызывает интерфейс обмена Weibo.
* @see {@link #sendmultimessage} или {@link #sendinglemessage}
*/
private void sendmessage () {
if (mweiboshareapi.isweiboappsupportapi ()) {
sendmultiMessage ();
} еще {
Toast.maketext (это, r.string.sina_share_hint, toast.length_short)
.показывать();
}
}
/**
* Стороннее приложение отправляет сообщение запроса в Weibo и вызывает интерфейс обмена Weibo. Примечание: когда
* {@link iweiboshareapi#getWeiboAppSupportapi ()}> = 10351, он поддерживает обмен несколькими сообщениями одновременно.
*
* @param Hastext
* Есть ли какой -нибудь текст для общего контента
* @param hasimage
* Есть ли какие -нибудь фотографии общего контента
* @param haswebpage
* Есть ли веб -страница для общего контента?
*/
private void sendmultiMessage () {
// 1. Инициализируйте сообщение общего доступа на Weibo
Weibomultimessage weibomessage = new weibomultiMessage ();
weibomessage.textObject = getTextObj ();
// Пользователи могут поделиться другими медиа -ресурсами (одна из веб -страниц, музыки, видео и звуков)
weibomessage.mediaObject = getWebPageObj ();
// 2. Инициализировать запросы сообщений от третьих лиц в Weibo
SendmultiMessagetoweiborequest request = new sendmultiMessagetoweiborequest ();
// Использование транзакции, чтобы уникально определить запрос
request.transaction = String.valueof (System.CurrentTimeMillis ());
request.multimessage = weibomessage;
// 3. Отправить сообщение запроса в Weibo и вызовать интерфейс обмена Weibo
mweiboshareapi.sendrequest (запрос);
// журнал обмена записями
Publicfun.sendshareapplog (usercenter.this,
getResources (). getString (r.string.micro_blog));
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Создать объект текстового сообщения.
* @return Text Message объект.
*/
private textObject getTextObj () {
TextObject TextObject = new TextObject ();
textObject.text = getResources (). getString (r.string.share_content);
вернуть TextObject;
}
/**
* Создайте объект сообщения MultiMedia (веб -страница).
* @return MultiMedia (веб -страница) объект сообщения.
*/
Private WebPageObject getWebPageObj () {
WebpageObject mediaObject = new WebPageObject ();
mediaObject.ActionURL = getString (r.string.share_url);
MediaObject.Identify = utility.GenerateGuid ();
mediaObject.title = getResources (). getString (r.string.share_title);
mediaObject.description = getString (r.string.share_content);
Bitmap bmp = bitmapfactory.decoderesource (getresources (),
R.drawable.icon);
mediaObject.setThumbimage (BMP);
вернуть MediaObject;
}
/**
* Этот класс определяет параметры, необходимые для авторизации Weibo.
* @author Sina
* @Since 2013-10-07
*/
открытый класс AccessTokenKeeper {
Private Static Final String Preferences_Name = "com_weibo_sdk_android";
частная статическая конечная строка key_uid = "uid";
частная статическая конечная строка key_access_token = "access_token";
Приватная статическая конечная строка key_expires_in = "expires_in";
/**
* Сохраните объект токена в SharedPreferences.
*
* @param context context приложением
* @param токен токен
*/
public static void writeAccesstoken (контекст контекста, токен oauth2accesstoken) {
if (null == context || null == token) {
возвращаться;
}
Sharedpreferences pref = context.getsharedpreferences (preferences_name, context.mode_append);
Редактор редактора = pref.edit ();
editor.putString (key_uid, token.getuid ());
editor.putString (key_access_token, token.getToken ());
editor.putlong (key_expires_in, token.getexpirestime ());
editor.commit ();
}
/**
* Прочитайте информацию токена из SharedPreferences.
*
* @param context context приложением
*
* @return вернуться в объект токена
*/
public static oauth2accesstoken readaccesstoken (контекст контекста) {
if (null == context) {
вернуть ноль;
}
Oauth2accesstoken token = new oauth2accesstoken ();
Sharedpreferences pref = context.getsharedpreferences (preferences_name, context.mode_append);
token.setuid (pref.getString (key_uid, ""));
token.settoken (pref.getString (key_access_token, ""));
token.setexpirestime (pref.getlong (key_expires_in, 0));
вернуть токен;
}
/**
* Очистить информацию о токене в SharedPreferences.
*
* @param context context приложением
*/
public static void clear (контекст контекста) {
if (null == context) {
возвращаться;
}
Sharedpreferences pref = context.getsharedpreferences (preferences_name, context.mode_append);
Редактор редактора = pref.edit ();
editor.clear ();
editor.commit ();
}
}
Вышеуказанное все об этой статье, и я надеюсь, что для всех будет полезно освоить Java.