• 一个若白,若白博客,欢迎您的访问,若白博客将全速为您展示全网优秀文章。

  • 男人最无奈的大概就是在最无力的年纪遇见最想照顾一辈子的人

  • :evil:这一回可是真的要做好一个博客咯

    加油!

将“闲聊么”改造成匿名聊天室

体会 一个若白 7个月前 (07-26) 67次浏览 0个评论 扫描二维码
文章目录[隐藏]

论文底稿总算实现为了,趁着这个当儿更新一波~[aru_40]

这次停更的时日宛若确实长了点,以至于谈论区都浮现了火暴老哥[aru_27]

将“闲聊么”改造成匿名聊天室

[aru_55]好了,下面切入正题……

对于于闲聊么

以前的文章早已经有介绍,详见“闲聊么”给你的网站加之一个谈天框。

无非啊,它有一个致命的缺点,必须注册登录能力参预谈天。对于小网站来说,很是鸡肋。正凡是人看到这么贫苦就放弃参预谈天了[aru_63]。

幸亏,它供应了一个接入用户系统的 API,应用这个 API,能够模拟出一个“已经登任命户”,以此实现免登录匿名谈天。

接入文档

先仔细钻研一下闲聊么的接入文档,这里拿相对于轻易的移动版接入形式来开刀[aru_84]

要想接入移动版,只要调用下列链接就可:

https://xianliao.me/s/10708?mobile=1&uid={登任命户的 ID}&username={登任命户的用户名,需要做 URI encode}&avatar={登任命户的头像 URL,需要做 URI encode}&ts={以后的 Linux timestamp}&token={xlm_hash}

其中,ID、用户名、用户名都很好捏造,弄一个数组,而后从中随机抽取就可。

用 PHP 获取 Linux 时日戳也不难,间接应用time()函数就行。

症结点在于xlm_hash的剖析。

民间给出的xlm_hash剖析方法是如许的[aru_129]:

将字符串 ‘[网站 ID]_[用户 ID]_[以后的 Linux timestamp]_[SSO 密匙]’ 用 SHA512 加密天生

比方:
用户 ID 为: 1; 现在时刻是: 1481673726; 那末要加密的字符串是:
10708_1_1481673726_TvFfXfTgKJXfoYucFwVqzqU7dwKFnbdL

应用 SHA512 加密先天生的 xlm_hash 是:
750825d2ae30419526d47db7bd2f49bd0abdf89f5b2f6591bad5b484e1c9ac56f3a23ac5a521f3eec4e73bfc3aea8d815d7a20964f4eac93dfa44d1e3e975f0e
(细致全为小写)

非常通俗易懂有木有[aru_160]

在 PHP 中,SHA512 加密的方法下列:

hash('sha512', '原始字符串')

完好代码

这里随机的用户信息来自第三方 API(https://uinames.com/)用以确保“随机”进去的用户不会发生重复。

为了方面访客在下次关上时还以以前的随机身份参预谈天,能够将天生的用户信息存储到浏览器 COOKIE 中。

完好的代码下列:

<?php  /**   * 将“闲聊么”改形成匿名谈天室   * 作者:孟坤博客   * 原文所在:https://mkblog.cn/1523/   * !!!转载请务必生存以上信息!!!   */    $web_id = '请在此处填写闲聊么网站 ID';      // 网站 ID  $sso_key = '请在此处填写闲聊么网站 SSO_KEY';  // SSO_KEY    /***************************************************************/    // 检测网站 ID 以及 SSO_KEY 是否配置  if(!$web_id || !$sso_key) die('请配置网站 ID 以及 SSO_KEY!');    // 获取模拟用户信息  if(isset($_COOKIE['xlm_uid'])) {    // 从 COOKIE 中读取到了用户信息      $uid = $_COOKIE['xlm_uid'];      $uname = isset($_COOKIE['xlm_uname'])? $_COOKIE['xlm_uname']: '匿名 _'.$uid;      $upic = isset($_COOKIE['xlm_upic'])? $_COOKIE['xlm_upic']: 'https://unsplash.it/100/100?random';  } else {      // 获取随机的用户名、性别、头像等信息(应用第三方 API)      $uinfo = file_get_contents('https://uinames.com/api/?region=england&ext');      $uinfo = json_decode($uinfo, true);      $uname = $uinfo['name'];      $upic = $uinfo['photo'];      $uid = rand(1, 999999999);  // 随机天生用户 ID            // 存储获取的用户信息到 COOKIE 中      setcookie('xlm_uid', $uid, 0, '/');      setcookie('xlm_uname', $uname, 0, '/');      setcookie('xlm_upic', $upic, 0, '/');  }     // 过滤特别字符  $uid = urlencode(htmlspecialchars($uid));  $uname = urlencode(htmlspecialchars($uname));  $upic = urlencode(htmlspecialchars($upic));    // 获取时日戳  $time = time();     // 剖析 Token  $token = $web_id.'_'.$uid.'_'.$time.'_'.$sso_key;    // 加密 Token,获取 xlm_hash  $xlm_hash = hash('sha512', $token);    // 剖析谈天所在  $chat_url = 'https://xianliao.me/s/'.$web_id.'?mobile=1&uid='.$uid.'&username='.$uname.'&avatar='.$upic.'&ts='.$time.'&token='.$xlm_hash;    // 重定向至谈天页面所在  header('Location: '.$chat_url);   die();    ?>

调用方法

将上述代码生存至 PHP 文件中,而后用 iframe 的方法嵌入就可。

比方——

<iframe src="http://你的网站.com/xianliaome.php" height="500" width="100%" frameborder="0"></iframe>

罕见问题

怎样去广告

在闲聊么后盾 > 网站治理 > 盈余面板 > 平息盈余性能。

怎样建立房间

先在页面中引入民间原版的闲聊么代码,也便是需要登录账号应用的那个。登录你自身的治理账号,而后在闲聊么后盾 > 网站治理 > 治理设定 将你的账号设为治理员账号,就能够在前台应用禁言、建立房间等性能了。

在线演示

可曩昔往孟坤工具箱留言板体验或者间接在下方测试~[aru_31]

(一起来欢快地谈天吧~)

文末彩蛋

最近友言发表关停谈论框效劳,现在畅言是一家独年夜了,而后就……给谈论框里强迫加之了广告[aru_40]

将“闲聊么”改造成匿名聊天室

下面教人人一招去除了谈论广告,无需 99 闭会员![aru_36]请叫我雷锋~

<style>  #feedAv, .section-service-w {      width: 0!important;      height: 0!important;      overflow: hidden!important;      position: fixed!important;      left: -9999999px!important;      top: -9999999px!important;  }  </style>

*注:以上方法不保障临时实用……

后记

博主往年毕业,现在各种毕业手续论文啥的真的忙无非去[aru_72]……博客以及其余网站名目还会连续连续连续保持停更或者连忙更新,最迟六月尾复原失常。还请谅解一哈[aru_63]


若白博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:将“闲聊么”改造成匿名聊天室
喜欢 (0)
关于作者:
个人博客,高中生。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到