android apk 微信登入_Android集成第三方微信登录
public classWXEntryActivity extends Activity implements IWXAPIEventHandler {privateIWXAPI api;private BaseResp resp = null;private String WX_APP_ID = "創建應用后得到的APP_ID";//獲取第一步的code后,請求以下鏈接獲取access_token
private String GetCodeRequest = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";//獲取用戶個人信息
private String GetUserInfo = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID";private String WX_APP_SECRET = "創建應用后得到的APP_SECRET";
@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api= WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
api.handleIntent(getIntent(),this);
}//微信發送請求到第三方應用時,會回調到該方法
@Overridepublic voidonReq(BaseReq req) {
finish();
}//第三方應用發送到微信的請求處理后的響應結果,會回調到該方法
@Overridepublic voidonResp(BaseResp resp) {
String result= "";if (resp != null) {
resp=resp;
}switch(resp.errCode) {caseBaseResp.ErrCode.ERR_OK:
result= "發送成功";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
String code=((SendAuth.Resp) resp).code;/** 將你前面得到的AppID、AppSecret、code,拼接成URL 獲取access_token等等的信息(微信)*/String get_access_token=getCodeRequest(code);
AsyncHttpClient client= newAsyncHttpClient();
client.post(get_access_token,newJsonHttpResponseHandler() {
@Overridepublic void onSuccess(intstatusCode, JSONObject response) {//TODO Auto-generated method stub
super.onSuccess(statusCode, response);try{if (!response.equals("")) {
String access_token=response
.getString("access_token");
String openid= response.getString("openid");
String get_user_info_url=getUserInfo(
access_token, openid);
getUserInfo(get_user_info_url);
}
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
});
finish();break;caseBaseResp.ErrCode.ERR_USER_CANCEL:
result= "發送取消";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();break;caseBaseResp.ErrCode.ERR_AUTH_DENIED:
result= "發送被拒絕";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();break;default:
result= "發送返回";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();break;
}
}/**
* 通過拼接的用戶信息url獲取用戶信息
*
* @param user_info_url*/
private voidgetUserInfo(String user_info_url) {
AsyncHttpClient client= newAsyncHttpClient();
client.get(user_info_url, newJsonHttpResponseHandler() {
@Overridepublic void onSuccess(intstatusCode, JSONObject response) {//TODO Auto-generated method stub
super.onSuccess(statusCode, response);try{
System.out.println("獲取用戶信息:" +response);if (!response.equals("")) {
String openid= response.getString("openid");
String nickname= response.getString("nickname");
String headimgurl= response.getString("headimgurl");
}
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
@Overrideprotected voidonNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent,this);
finish();
}/**
* 獲取access_token的URL(微信)
*
* @param code
* 授權時,微信回調給的
* @return URL*/
privateString getCodeRequest(String code) {
String result= null;
GetCodeRequest= GetCodeRequest.replace("APPID",
urlEnodeUTF8(WX_APP_ID));
GetCodeRequest= GetCodeRequest.replace("SECRET",
urlEnodeUTF8(WX_APP_SECRET));
GetCodeRequest= GetCodeRequest.replace("CODE", urlEnodeUTF8(code));
result=GetCodeRequest;returnresult;
}/**
* 獲取用戶個人信息的URL(微信)
*
* @param access_token
* 獲取access_token時給的
* @param openid
* 獲取access_token時給的
* @return URL*/
privateString getUserInfo(String access_token, String openid) {
String result= null;
GetUserInfo= GetUserInfo.replace("ACCESS_TOKEN",
urlEnodeUTF8(access_token));
GetUserInfo= GetUserInfo.replace("OPENID", urlEnodeUTF8(openid));
result=GetUserInfo;returnresult;
}privateString urlEnodeUTF8(String str) {
String result=str;try{
result= URLEncoder.encode(str, "UTF-8");
}catch(Exception e) {
e.printStackTrace();
}returnresult;
}
}
總結
以上是生活随笔為你收集整理的android apk 微信登入_Android集成第三方微信登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言删除文件中的数据_第20问:删除了
- 下一篇: pcss评分_GTA5画质设置 N卡画质