apicloud 第三方登录授权、微信、扣扣、微博登录授权
生活随笔
收集整理的這篇文章主要介紹了
apicloud 第三方登录授权、微信、扣扣、微博登录授权
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
授權登錄、接入第三方的配置
例如:微信的登錄授權。
首先在模塊里面添加 wx 這個模塊,然后在項目的配置文件里面進行配置。
配置的時候要現在微信開放平臺
https://open.weixin.qq.com/
的移動應用里面,創建這個應用,等審核通過之后就會拿到相應的 appleid 以及 key。
具體配置請參考
https://docs.apicloud.com/Client-API/Open-SDK/wx
因為第三方的模塊都是原生的,所以這個時候想要真機測試是不行的。必須得先編譯以后才行。
要生成云編譯的測試證書,同時要將測試的手機添加到項目中具體方法:
個人或公司賬號生成的App Store類型mobileprovision證書,應用在沒有發布到App Store之前只能在越獄設備上安裝,若要在非越獄手機上面安裝,則需要把設備udid添加到測試設備列表Devices里,并且生成Ad Hoc類型mobileprovision證書。
https://docs.apicloud.com/Dev-Guide/iOS-License-Application-Guidance#3
所有配置結束后編譯之前一定要先提交一次云同步,因為配置里面的內容只有云同步之后才會編譯生效,否則是不會生效的。
有很多時候編譯玩我們能調起來微信,但是在微信里面的操作沒有任何反應,跳轉不回我們的app。這是因為蘋果的限制原因,具體:
https://docs.apicloud.com/Dev-Guide/app-config-manual#14-3
這個時候需要在配置文件中添加:
<preference name="querySchemes" value="weixin,wechat" />
添加完之后還是一樣要先云同步然后在編譯。
云編譯方法:
方法:編輯器的該項目右鍵,然后選擇 云端自定義Loader 編譯。編譯完成之后,下載下來(例如ios),用微信掃碼就能下載,之后打開,會有配置的小點,點開填寫相應的配置,這個時候就是自定義Loader的調試了。
授權登錄流程
具體微信登錄授權代碼
/**
* 微信登錄授權 (key id等在配置文件配置ok)
* 1、判斷是否安裝
* 2、獲取 code
* 3、獲取 accessToken、openId
* 4、獲取wx頭像,昵稱
* 5、綁定信息到后臺
*/
var wx, code;
function wxLogin(){
wx = api.require('wx');
wx.isInstalled(function(ret, err) {
if (!ret.installed) {
api.toast({
msg: '當前設備未安裝微信客戶端',
duration: '1300',
localtion: 'middle'
});
return;
} else {
getWxCode();
}
});
}
function getWxCode(){
wx.auth(function(ret, err) {
if (ret.status) {
code = ret.code;
getWxAccessToken();
} else {
alert(JSON.stringify(err))
}
});
}
function getWxAccessToken(){
wx.getToken({
code: code
}, function(ret, err) {
if (ret.status) {
geWxtUserInfor(ret);
}
});
}
function geWxtUserInfor(ret){
api.showProgress({
style: 'default',
animationType: 'fade',
title: '授權成功',
text: '綁定處理中...',
modal: true
});
wx.getUserInfo({
accessToken: ret.accessToken,
openId: ret.openId
}, function(rets, err) {
if (rets.status) {
bindWxNews(rets)
}
});
}
function bindWxNews(rets){
api.ajax({
url: 'http://q7ns64.natappfree.cc/weixinLogin?openid=' +rets.openid+'&nickname=' +rets.nickname+'&headimgurl=' +rets.headimgurl,
timeout: 10,
dataType: 'json',
method: 'get'
}, function(reta, err) {
api.hideProgress();
if (reta.memberId){
$api.setStorage('member_id', reta.memberId);
$api.setStorage('openid', rets.openid);
$api.setStorage('nickname', rets.nickname);
$api.setStorage('headimgurl', rets.headimgurl);
}
$api.setStorage('isLogin', true);
api.setPrefs({
key: 'loginStatus',
value: 'loginSuccess'
});
openIndex();
/*** 登錄異常 ***/
if (err) {
api.toast({
msg: '綁定授權失敗',
duration: '1300',
localtion: 'middle'
});
return;
}
});
}
具體QQ登錄授權代碼
/**
* qq 登錄授權
*/
var openIdQQ = '';
function qqInstall(){
qq = api.require('QQPlus');
qq.installed(function(ret, err) {
if (ret.status) {
qqLogin();
} else {
api.toast({
msg: '當前設備未安裝QQ客戶端',
duration: '1300',
localtion: 'middle'
});
return;
}
});
}
function qqLogin(){
qq = api.require('QQPlus');
qq.login(function(ret, err) {
openIdQQ = ret.openId;
var accessToken = ret.accessToken;
if(ret.status){
getQQinfor();
}
});
}
function getQQinfor(){
qq = api.require('QQPlus');
api.showProgress({
style: 'default',
animationType: 'fade',
title: '授權成功',
text: '綁定處理中...',
modal: true
});
qq.getUserInfo(function(rets, err) {
if (rets.status) {
bindQQnews(rets)
} else {
api.toast({
msg: err.msg,
duration: '1300',
localtion: 'middle'
});
api.hideProgress();
}
});
}
總結
以上是生活随笔為你收集整理的apicloud 第三方登录授权、微信、扣扣、微博登录授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA 根据具体年份周数获取日期范围
- 下一篇: 油价上涨利新能源?成本一年狂飙9倍!马斯