解决近期出现的微擎获取用户头像失败的问题

2018-11-21 小惟 44

1.其实很简单,真实的头像地址后面多了一个132变成了132132.

要改起来很麻烦,一般只要改一个地方,就可以把显示的地方都改了。

E:\php\WWW\framework\model\mc.mod.php

 

mc_fansinfo函数,返回前加上

if (!empty($fan['avatar'])) {
$fan['avatar'] = str_replace("132132","132",$fan['avatar']);
}

2.

近期因为腾讯改变了头像规则,造成一些老版本的微擎用户,出现获取粉丝头像获取错误。

  

  根据官方最新的更新,可做如下修改。

  针对版本微擎1.0以上版本。

  解决办法:把头像获取里面的替换0为132的函数去掉。

  需要修改的文件:一共修改4个目录的,6个文件


framework/builtin/core/receiver.php 
$userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; 替换为 $userinfo['headimgurl'] = $userinfo['headimgurl']; 
 
framework/model/mc.mod.php 
$userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; 替换为 $userinfo['headimgurl'] = $userinfo['headimgurl']; 
$fans['headimgurl'] = rtrim($fans['headimgurl'], '0') . 132; 替换为 $fans['headimgurl'] = $fans['headimgurl']; 
 
app/source/mc/profile.ctrl.php 
emptyempty($profile['avatar']) ? ($data['avatar'] = rtrim($map_fans['headimgurl'], '0') . 132) : ''; 替换为 emptyempty($profile['avatar']) ? ($data['avatar'] = $map_fans['headimgurl']) : ''; 
 
app/source/auth/register.ctrl.php 
$data['avatar'] = rtrim($map_fans['headimgurl'], '0') . 132;  替换为  $data['avatar'] = $map_fans['headimgurl']; 
 
app/source/auth/oauth.ctrl.php 
$userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; 替换为 $userinfo['headimgurl'] =$userinfo['headimgurl']; 
 
app/source/auth/forward.ctrl.php 
$record['avatar'] = rtrim($userinfo['headimgurl'], '0') . 132;  替换为 $record['avatar'] = $userinfo['headimgurl'];



处理完了以后点一下同步全部粉丝信息
就OK了,还是刚才那几个人,但是头像可以显示了
本文仅供参考,针对不想升级最新版的用户做的这样的改动,不足之处还望指出。
 
-----------------2018年/1/20 更新-------------------------------------


针对人人商城已经损坏的头像,处理办法打开数据库管理器(PHPMyadmin或者其他的)
切换到sql 编辑器窗口
输入以下代码:

UPDATE ims_ewei_shop_member SET avatar=REPLACE(avatar, '/132132', '/132');



然后执行sql语句。即可恢复正常