闲聊么匿名版

发布于 2018-05-27  1.24k 次阅读


和闲聊么也合作比较久了,除了有时候服务器崩盘以外,闲聊么的聊天室还是挺不错的。对于不了解的站长可以点击链接了解一下。

接入方式官方有介绍就不过多的陈述了。

本文引用了三方的API,以达到随机用户的效果,如果原站挂了的话请更换API。同时,为了用户能使用一个匿名,于是有了COOKIE,在用户不清除浏览器缓存的情况下可以接着上次的匿名账户聊天。

代码如下

<?php

$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();
 
?>

调用方法

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

转载

孟坤博客


含词未吐,气若幽兰