今天说下怎么用QQ微博转发内容。
围脖转发有两种方式:
1. 弹出显示框转发
2. 悄悄的转发
第一种方式:
这种比较简单:
① 在head中加入以下代码
<script type="text/javascript"> function postToWb() { var _url = encodeURIComponent(document.location + "?uid=this_is_my_testid"); var _assname = encodeURI("××××××"); //你注册的QQ帐号,不是昵称 var _appkey = encodeURI("×××××××××××××××××"); //你?从ó腾ú讯?获?得?的?appkey var _pic = encodeURI(''); //(¨例y如?:ovar _pic='图?片?url1|图?片?url2|图?片?url3....)? var _t = "浙?江-省?最?受ü欢?迎-的?景°区?评à选?"; //$('.container hero-unit h1').valueOf(); //标ê题a和í描è述?信?息¢ var metainfo = document.getElementsByTagName("meta"); for (var metai = 0; metai < metainfo.length; metai++) { if ((new RegExp('description', 'gi')).test(metainfo[metai].getAttribute("name"))) { _t = metainfo[metai].attributes["content"].value; } } //_t = $("#herodiv h1").html() + _t; //请?在ú这a里?添í加ó你?自?定¨义?的?分?享í内ú容Y if (_t.length > 120) { _t = _t.substr(0, 117) + '...'; } _t = encodeURI(_t); var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url=' + _url + '&appkey=' + _appkey + '&pic=' + _pic + '&assname=' + _assname + '&title=' + _t; window.open(_u, '', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no'); } </script>
②在页面中加入一行代码
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"> <img src="http://v.t.qq.com/share/images/s/b32.png"></a>
这样就能实现图中的效果了
第二种方式:
这种相对第一种稍微麻烦点,
场景:比如我在网站上对某个景区投了一票,这时我们在用js自动为他转发一条;就是将图中的转发和投票两个功能合并起来。
实现的方式按下面的步骤来
①在html的末尾标签后加上以下js
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc.js#appId=100250988"//这a里?填?写′你?的?appid charset="UTF-8"></script> <script type="text/javascript"> function multiInvoke(tms) {//测a试?频μ繁±调÷用?的?返μ回?时±序ò tms = tms || 80; function tt() { QC.api("https://graph.qq.com/user/get_user_info", { a: 1, b: 2, c: '汉o字?参?数y测a试?' }, "xml", "get") .success(function (s) { QC.Console.log(" [S] get_user_info " + s.seq); }) .error(function (f) { QC.Console.log(" [E] get_user_info " + f.seq); }); } for (var i = 0; i < tms; i++) { tt(); } } function weibo() { var mydate = new Date().toLocaleDateString(); var mytime = new Date().toLocaleTimeString(); var scenicname = document.getElementById("scenicname").innerHTML; var ctt = scenicname + " " + mydate + " " + mytime; if (!ctt) { alert('亲×!?把?数y据Y填?完ê。£。£'); return; } var weibo_back = document.getElementById("weibo_back"); weibo_back.value = ""; QC.api("add_t", { content: ctt }) .success(function (s) { //成é功|回?调÷ alert('发¢送í微¢博?成é功|,?请?到?腾ú讯?微¢博?内ú查é看′!?'); QC.Console.log(' [S] weibo seq no. : ' + s.seq); }) .error(function (f) { //失§败ü回?调÷ QC.Console.log(" [E] weibo seq no. " + f.seq); }) .complete(function (c) { //完ê成é请?求ó回?调÷ weibo_back.value = c.stringifyData(); }); } function fenxiang() { var paras = { images: document.getElementById("fenxiang_images").value, title: document.getElementById("fenxiang_title").value, url: document.getElementById("fenxiang_url").value, comment: document.getElementById("fenxiang_comment").value, summary: document.getElementById("fenxiang_summary").value }; for (var i in paras) { if (!(paras[i] + "")) { alert('亲×!?把?数y据Y填?完ê。£。£'); return; } } var fenxiang_back = document.getElementById("fenxiang_back"); fenxiang_back.value = ""; QC.api("add_share", paras) .success(function (s) {//请?自?行D改?写′成é功|回?调÷ alert('分?享í成é功|,?请?到?空?间?内ú查é看′!?'); QC.Console.log(" [S] fenxiang seq no. " + s.seq); }) .error(function (f) {//请?自?行D改?写′失§败ü回?调÷ QC.Console.log(" [E] fenxiang seq no. " + f.seq); }) .complete(function (c) {//请?自?行D改?写′完ê成é请?求ó回?调÷ fenxiang_back.value = c.stringifyData(); }); } function getInfo() { var getInfo_back = document.getElementById("getInfo_back"); getInfo_back.value = ""; QC.api("get_user_info") .success(function (s) {//成é功|回?调÷ alert("获?取?用?户§信?息¢成é功|!?当±前°用?户§昵?称?为a:o" + s.data.nickname); }) .error(function (f) {//失§败ü回?调÷ alert("获?取?用?户§信?息¢失§败ü!?"); }) .complete(function (c) {//完ê成é请?求ó回?调÷ alert("获?取?用?户§信?息¢完ê成é!?"); getInfo_back.value = c.stringifyData(); }); } function getToken() { if (QC.Login.check()) { var keys = QC.Login.getTokenKeys(); alert(["当±前°登?录?用?户§的?", "openid为a:o" + keys.openid, "accessToken为a:o" + keys.accessToken].join("\n")); //这a里?可é以?调÷用?自?己o的?保£存?接ó口ú //... } } //callback为ajssdk保£留?字?,?测a试?是?否?会á覆2盖?当±前°页3面?函ˉ数y function callback() { alert("我ò很ü好?,?我ò很ü好?"); } function showQCK() { document.getElementById("qc_key_cot").innerHTML = QC.Cookie.get("__qc__k"); } function pageInit() { document.getElementById("OO").innerHTML = document.getElementById("OO").getAttribute("_origText"); showQCK(); } //获?取?jsdoc示?例y function getDoc() { QC.api.getDoc("get_user_info", function (doc) { var str = QC.JSON.stringify(doc); alert(str); }); } document.ondblclick = function () { multiInvoke(2); }; pageInit(); // debugger; //初?始?化ˉsdk // QC.init({appId:100229030});//appId请?替?换?为a申ê请?时±系μ统3提á供?的?appId //加ó入?QQ登?录?按′钮¥ QC.Login({ btnId: "OO" // ,scope : "get_user_info,add_share,add_weibo,add_t,add_topic,add_one_blog,list_album,upload_pic,add_album,check_page_fans,list_photo,get_comment,get_user_profile,get_tenpay_address,get_user_cbinfo" }); QC.Login({ btnId: "OO11", scope: "get_user_info,add_share,add_weibo,add_t,add_topic,add_one_blog,list_album,upload_pic,add_album,check_page_fans,list_photo,get_comment,get_user_profile,get_tenpay_address,get_user_cbinfo" }, function (dt, opts) { QC.Login.fillUserInfo(opts['btnId'], dt); showQCK(); QC.Console.log("IN:OO11"); }, function (opts) { showQCK(); QC.Console.log("OUT:OO11"); }); </script>
②加上隐藏的项,显示测试的数据
<!-- 转a发¢测a试?部?分? --> <div style="display: none"> cookie["__qc__k"] : <span id="qc_key_cot"></span> <input value=" 注¢销ú " type="button" onclick="QC.Login.signOut();pageInit();" /> <span id="OO" _origtext="get_user_info 加ó载?昵?称?中D..." title="nickname"></span><span id="OO11" _origtext="get_user_info 加ó载?昵?称?中D..." title="nickname"></span> <textarea rows="3" cols="20" readonly="1" class="callback" id="weibo_back"></textarea> </div>
③在页面上加上按钮。
<input type="button" class="btn" value=" 转a发¢ »" onclick="weibo();" />
④在上面只调用的转发weibo的方法,在①中还有其他方法可以试试。
⑤具体的大家可以再修改,还能得到很大的简化,这是我直接从api上拉来的一段做的demo
上面把登录框也隐藏了,用的时候记得把显示出来。