• C#.QQ.OAuth2.0.API(Ⅱ)


    今天说下怎么用QQ微博转发内容。

    围脖转发有两种方式:

    1. 弹出显示框转发

    2. 悄悄的转发


    第一种方式:

    image

    这种比较简单:

    ① 在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>
    

    这样就能实现图中的效果了


    第二种方式:

    image

    这种相对第一种稍微麻烦点,

    场景:比如我在网站上对某个景区投了一票,这时我们在用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>&nbsp;
                <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发¢ &raquo;" onclick="weibo();" />
    

    ④在上面只调用的转发weibo的方法,在①中还有其他方法可以试试。

    image

    ⑤具体的大家可以再修改,还能得到很大的简化,这是我直接从api上拉来的一段做的demo

    上面把登录框也隐藏了,用的时候记得把显示出来。

    image

  • 相关阅读:
    java 正则表达式匹配指定变量并替换
    Tomcat 架构原理解析到架构设计借鉴
    优雅的缓存写法,以及synchronized 和 ReentrantLock性能 PK
    应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例
    Arm Keil MDK V5.33版本更新,欢迎下载!
    Arm Development Studio 2020.1版本下载更新
    设计模式 | 享元模式(Flyweight)
    设计模式 | 中介者模式/调停者模式(Mediator)
    设计模式 | 职责链模式(Chain of responsibility)
    设计模式 | 命令模式(Command)
  • 原文地址:https://www.cnblogs.com/TivonStone/p/2425969.html
Copyright © 2020-2023  润新知