溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

thinkphp如何實(shí)現(xiàn)友盟消息推送

發(fā)布時(shí)間:2021-10-19 10:32:01 來(lái)源:億速云 閱讀:135 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要為大家展示了“thinkphp如何實(shí)現(xiàn)友盟消息推送”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“thinkphp如何實(shí)現(xiàn)友盟消息推送”這篇文章吧。

上篇文章 thinkphp集成系列之phpmailer批量發(fā)送郵件講過(guò)的;

郵件有著零成本、內(nèi)容豐富的優(yōu)點(diǎn);

但是一個(gè)非常硬的硬傷;這家伙的及時(shí)性太差了;

尤其是隨著90、00后的崛起;從上網(wǎng)開(kāi)始體驗(yàn)的就是QQ、微信的即時(shí)通訊;

唯一有的郵箱也還是自動(dòng)開(kāi)通的QQ郵箱;然而還是一連串的未讀;

那么有木有一種零成本、但是及時(shí)性比較好的方案呢?

有的;那就是消息推送;當(dāng)然;前提是用戶已經(jīng)安裝了app;

今個(gè)先就友盟的推送來(lái)講解下;http://push.umeng.com/

依然是以開(kāi)源項(xiàng)目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

一:注冊(cè)應(yīng)用

工欲善其事必先注其key;

找到消息推送、添加應(yīng)用;獲得key和secret;

這里面有2個(gè)坑;

1:安卓要用的是Appkey和App Master Secret;不是Umeng Message Sercet;

2:一定要添加 服務(wù)器ip地址、如果是在本地測(cè)試;那直接百度下ip;把查出的ip填上即可;

添加測(cè)試設(shè)備的Device Token;這個(gè)是需要由移動(dòng)端獲取的;

二:創(chuàng)建表

下載示例項(xiàng)目;安裝后會(huì)有users表和oauth_user表;

users表用來(lái)存放用戶的賬號(hào)密碼之類的;

oauth_user表用來(lái)存放移動(dòng)端發(fā)送過(guò)來(lái)的Device Token;

當(dāng)然;自己設(shè)計(jì)表也是可以的;主要就是讓用戶id和Device Token關(guān)聯(lián)起來(lái);

三:集成友盟sdk

sdk目錄:/ThinkPHP/Library/Vendor/Umeng

當(dāng)然;這個(gè)sdk也是被我修改過(guò)的;具體修改了那些地方;同樣也年代久遠(yuǎn);沒(méi)有記錄了;

配置項(xiàng):/Application/Common/Conf/config.php

    'UMENG_IOS_APP_KEY'      => '', //友盟ios AppKey
    'UMENG_IOS_SECRET'       => '', //友盟ios App Master Secret
    'UMENG_ANDROID_APP_KEY'  => '', //友盟android AppKey
    'UMENG_ANDROID_SECRET'   => '', //友盟android App Master Secret

函數(shù):/Application/Common/Common/function.php

/**
 * 發(fā)送友盟推送消息
 * @param  integer  $uid   用戶id
 * @param  string  $title  推送的標(biāo)題
 * @param  integer $type   1:官方小秘書   2:我的評(píng)論
 * @return boolear       是否成功
 */
function umeng_push($uid,$title){
    // 獲取token
    $device_tokens=D('OauthUser')->getToken($uid,2);
    // 如果沒(méi)有token說(shuō)明移動(dòng)端沒(méi)有登錄;則不發(fā)送通知
    if (empty($device_tokens)) {
        return false;
    }
    // 導(dǎo)入友盟
    Vendor('Umeng.Umeng');
    // 自定義字段   根據(jù)實(shí)際環(huán)境分配;如果不用可以忽略
    $status=1;
    // 消息未讀總數(shù)統(tǒng)計(jì)  根據(jù)實(shí)際環(huán)境獲取未讀的消息總數(shù) 此數(shù)量會(huì)顯示在app圖標(biāo)右上角
    $count_number=1;
    $data=array(
        'key'=>'status',
        'value'=>"$status",
        'count_number'=>$count_number
        );
    // 判斷device_token  64位表示為蘋果 否則為安卓
    if(strlen($device_tokens)==64){
        $key=C('UMENG_IOS_APP_KEY');
        $timestamp=C('UMENG_IOS_SECRET');
        $umeng=new \Umeng($key, $timestamp);
        $umeng->sendIOSUnicast($data,$title,$device_tokens);
    }else{
        $key=C('UMENG_ANDROID_APP_KEY');
        $timestamp=C('UMENG_ANDROID_SECRET');
        $umeng=new \Umeng($key, $timestamp);
        $umeng->sendAndroidUnicast($data,$title,$device_tokens);
    }
    return true;
}

調(diào)用:

umeng_push('1','測(cè)試')

以上是“thinkphp如何實(shí)現(xiàn)友盟消息推送”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI