微信公眾上傳頭像和分享
阿新 • • 發佈:2018-11-10
發現了一個比較全的微信公眾上傳頭像和分享的部落格,儲存一下
地址:http://www.ningguoteng.com/post-61.html
前面的就看微信JSSDK文件了:http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html#.E5.9B.BE.E5.83.8F.E6.8E.A5.E5.8F.A3
$(function () {
// 3. 通過config介面注入許可權驗證配置
wx.config({
debug: false, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。
appId: commonJson.AppID, // 必填,公眾號的唯一標識
timestamp: commonJson.TimeStamp, // 必填,生成簽名的時間戳
nonceStr: commonJson.NonceStr, // 必填,生成簽名的隨機串
signature: commonJson.Signature, // 必填,簽名,見附錄1
jsApiList: [// 必填,需要使用的JS介面列表,所有JS介面列表見附錄2
"onMenuShareTimeline",
"onMenuShareAppMessage" ,
"onMenuShareQQ",
"onMenuShareWeibo",
"chooseImage",
"uploadImage",
"downloadImage",
"previewImage"
]
});
// 4. 通過ready介面處理成功驗證
wx.ready(function () {
weixin.wxShareTimeline(); //微信分享到朋友圈
weixin.wxShareAppMessage(); //微信分享給朋友
weixin.wxShareWeibo(); //微信分享到微博
weixin.wxShareQQ(); //微信分享到QQ
});
// 5. 通過error介面處理失敗驗證
wx.error(function (res) {
//alert(JSON.stringify(res));
//alert("微信介面驗證失敗!檢視是否配置url");
});
//獲取頭像
$("#imgTop").click(function () {
weixin.wxChooseImage(); //獲取手機圖片
})
//獲取廣告圖片
$("#imgAdve").click(function () {
weixin.wxChooseGgImage(); //獲取廣告圖片
})
$(".clickpic").click(function () {
var picurl = $(".clickpic").attr("data");
//預覽圖片
wx.previewImage({
current: picurl, // 當前顯示的圖片連結
urls: urls // 需要預覽的圖片連結列表
});
})
});
var imgUrl = $("#shareImg").text(); //圖片url
var descContent = document.title; //描述內容
var shareTitle = document.title; //標題
var weixin = {
localIds: "",
serverId: "",
//微信分享到朋友圈
wxShareTimeline: function () {
wx.onMenuShareTimeline({
title: shareTitle, // 分享標題
link: lineLink, // 分享連結
imgUrl: imgUrl, // 分享圖示
success: function () {
// 使用者確認分享後執行的回撥函式
},
cancel: function () {
// 使用者取消分享後執行的回撥函式
}
});
},
//微信分享給朋友
wxShareAppMessage: function () {
wx.onMenuShareAppMessage({
title: shareTitle, // 分享標題
desc: commonJson.sharelanguage, // 分享描述
link: lineLink, // 分享連結
imgUrl: imgUrl, // 分享圖示
type: '', // 分享型別,music、video或link,不填預設為link
dataUrl: '', // 如果type是music或video,則要提供資料鏈接,預設為空
success: function () {
// 使用者確認分享後執行的回撥函式
},
cancel: function () {
// 使用者取消分享後執行的回撥函式
}
});
},
//微信分享到微博
wxShareWeibo: function () {
wx.onMenuShareWeibo({
title: shareTitle, // 分享標題
desc: commonJson.sharelanguage, // 分享描述
link: lineLink, // 分享連結
imgUrl: imgUrl, // 分享圖示
success: function () {
// 使用者確認分享後執行的回撥函式
},
cancel: function () {
// 使用者取消分享後執行的回撥函式
}
});
},
//微信分享到QQ
wxShareQQ: function () {
wx.onMenuShareQQ({
title: shareTitle, // 分享標題
desc: commonJson.sharelanguage, // 分享描述
link: lineLink, // 分享連結
imgUrl: imgUrl, // 分享圖示
success: function () {
// 使用者確認分享後執行的回撥函式
},
cancel: function () {
// 使用者取消分享後執行的回撥函式
}
});
},
//獲取手機圖片
wxChooseImage: function () {
wx.chooseImage({
success: function (res) {
weixin.localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標籤的src屬性顯示圖片
$("#imgTop").attr("src", weixin.localIds);
weixin.wxUploadImge(0);
}
});
},
//上傳圖片
wxUploadImge: function (param) {
wx.uploadImage({
localId: weixin.localIds[0], // 需要上傳的圖片的本地ID,由chooseImage介面獲得
isShowProgressTips: 1, // 預設為1,顯示進度提示
success: function (res) {
weixin.serverId = res.serverId; // 返回圖片的伺服器端ID
weixin.wxDownImge(param);
},
fail: function (res) {
alert("圖片上傳失敗");
}
});
},
//下載圖片到我們伺服器
wxDownImge: function (param) {
var strurl = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + commonJson.tonkey + "&media_id=" + weixin.serverId
$.ajax({
type: "POST",
url: "/index.php?g=WShop&m=AjaxProduct&a=index",
data: { "act": "uploadwximage", "access_token": commonJson.tonkey, "media_id": weixin.serverId },
async: true,
success: function (res) {
res=$.parseJSON(res);
if (res == 0) {
alert("下載圖片失敗")
} else {
if (param == 0) {
$("#imgTop").attr("src", res);
$("#ImgeTop").val(res);
} else {
$("#imgAdve").attr("src", res);
$("#ImgeAdve").val(res);
}
}
}
});
},
//獲取手機圖片
wxChooseGgImage: function () {
wx.chooseImage({
success: function (res) {
weixin.localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標籤的src屬性顯示圖片
$("#imgAdve").attr("src", weixin.localIds);
weixin.wxUploadImge(1);
}
});
}
}
ajax頁面
$at=$_POST["access_token"];
$server_id=$_POST["media_id"];
$url="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$at."&media_id=".$server_id;
$curl = curl_init($url);
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_NOBODY,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($curl);
$httpInfo=curl_getinfo($curl);
curl_close($curl);
/* if($result->errcode == '40001'){
//出現invalid credential, access_token is invalid or not latest
//清空access_token,重新獲取
//$isfirt = false;
$this->_clearAccessToken();
$jsapi_ticket = $this->uploadwximage();
}else{
LOG::write ( '獲取jsapi_ticketObj發生錯誤:錯誤程式碼' . $jsapi_ticketObj->errcode . ',微信返回錯誤資訊:' . $jsapi_ticketObj->errmsg );
exit ();
} */
$imageAll=array_merge(array('header'=>$httpInfo),array('body'=>$result));
$dir = $_SERVER['DOCUMENT_ROOT']."/images/shop/".date("Y-m-d",time());
if(!is_dir($dir)){
mkdir($dir);
}
$name=time().rand(10000,99999).".jpg";
$filename=$dir."/".$name;
$local_file = fopen($filename, 'w');
if (false !== $local_file){
if (false !== fwrite($local_file, $imageAll['body'])) {
fclose($local_file);
}
}
$sr="/images/shop/".date("Y-m-d",time())."/".$name;
$src=trim($sr);///去掉首尾空格
$this->ajaxReturn($src);