WP Open Social

WP Open Social,这是一款 WordPress 社交平台登陆插件,个人原创,代码简洁,功能强大!

现在的用户都是超级懒的,我也不例外。如果一个网站动不动要我注册,不管祂的内容和服务有多好,我的内心肯定是抗拒的。要为此创作一个独一无二的账号和一个复杂好记又不雷同的密码,根本就是强人所难。

这个插件就是这样一个初衷:让你的网站用户垂手可得。类似 1Password 的思路,我们每天都会使用 QQ、微博、微信,如今可以将这些账号作为唯一的个人凭证,从而方便的登录各类其他平台和服务。

一开始插件的功能比较简单粗糙,定位是免费开源的。随着很多高级玩家的使用出现了很多应用和生产环境中出现的各种问题:账号过长,邮箱虚假,微博同步,微信打通等。在这个过程中投入了大量的时间和精力,针对各种高级功能发布了收费版。

有了这样一个东东,能大大提升体验和效率,那祂就是有价值的,可持续的,这也是我保持更新的动力。我本人购买了很多正版软件和应用,这是对好作品的支持和肯定;同样,我也希望自己的付出能得到正向的回报。

关于代码,我编程还行,但 PHP 新手;关于界面,我审美还行,但美工一般。信奉体验执着细节,相信只要想得到,肯定还是有很多优化空间的。任何意见建议都欢迎留言,非常感谢大家的支持,谢谢!温馨提示:咨询问题请留下邮箱网站方便联系和回访。

  • 由于 Open Social 跟谷歌一个历史项目重名,为了区分插件改名为:WP Open Social
  • 从 5.0 版本起,代码遵循 MIT 许可协议:可任意修改和使用,在保留许可协议前提下;由插件引起的损失或意外本人概不负责。
  • 5.0版本起,更新前需要先备份 mod 目录,然后手工覆盖更新。如通过系统自动更新的话模块目录会被覆盖掉。

基础功能

  • 主要功能:QQ、微博、微信、谷歌、Facebook、Twitter 等登录和分享
  • 其他特色:支持安全验证、支持登录出错提示、用户列表可查看用户绑定信息
  • 使用环境:无系统环境要求、无第三方库、无加密混淆、无任何网站域名限制

版本说明

最新 5.0 的核心代码统一免费开源,高级模块按需收费。
升级到专业版费用:4.X(免费)、3.X(¥100)、2.X(¥200)。
如旧版自动升级出现问题,请联系我索取新版。

  • 基础版(¥0 ):WordPressGithub,包含兼容模块、包含国内外八个主流社交平台
  • 专业版(¥300):联系我,包含基础功能、包含所有非专属模块
  • 旗舰版(¥? ):包含专属代理模块、支持自动更新

模块介绍

  • 兼容模块(¥0 ):兼容 WooCommerce、BuddyPress 等热门插件,可自定义钩子
  • 冷门平台(¥20 ):拓展国内外各种非主流社交媒体平台如 淘宝支付宝、Pinterest
  • 注册模块(¥50 ):可随机生成、自主填写邮箱、邮箱激活、管理员审核、绑定老用户
  • 微博模块(¥50 ):管理员绑定微博发布文章可同步到微博、可计划发布、可查看结果
  • 短信模块(¥100):支持短信登录、目前支持阿里云云通信短信服务、可查看出错信息
  • 微信模块(¥150):支持公众号订阅登录、生成二维码、自动适配平台、打通用户标识
  • 代理模块(非卖): 高级用户专属、需注册并购买作者平台账号使用权方可使用

代理登录

代理模块为之前的“内置登录”,独立为高级专用功能,以后的新版发布默认不会包含该模块。
针对备案或翻墙或企业资格等无法使用平台登录的用户,可提供体验和专属套餐的购买使用。
建议可搭配注册模块支持设置邮箱激活或修改密码方可登录等方式来另行管理绑定的用户。

  1. 微信开放号及公众号(微信模块所带):¥200/年/每个
  2. 国内外主流社交平台(基础版所带平台):¥100/年/每个
  3. 国内外冷门社交平台(更多平台模块所带):¥50/年/每个

升级步骤

  1. 任何版本升级时先备份插件目录、禁用插件、再删除插件目录
  2. 再将新版上传/解压到原位置、启用插件、插件配置会自动继承

常见问题

0、插件有什么使用场景和限制

这是一个网页插件。如果在手机设备用普通浏览器中浏览,并无法调用移动端应用(如微信客户端)。

1、插件能获取什么用户资料

由于协议限制,大部分第三方登录只能获取用户的昵称和头像,少部分能够获取真实邮箱,所以生产环境中可能需要用户补全具体信息。另外,登陆时最主要的识别依据是具体用户在具体应用(网站)上的唯一编号。

2、回调地址要怎么设置?

新版后台可统一或单独自定义,默认为空即可网站主域名。一般为网站首页,如 https://www.xiaomac.com
QQ互联请添加后缀 /index.php,然后在插件后台设置回调地址形如:http://www.abc.com/index.php
——注意:申请国内第三方登陆可能需要网站备案,如申请确有难度可以购买“代理登录”。

3、在那里获取 App IDAPP Key/Secret

第三方平台的后台。两者叫法大同小异,公开的应用号叫 XXXX_ID;不公开的应用密钥叫 XXXX_KEY/SECRET

4、支持多站点吗?

支持;超级管理员在主站设置,子站自动继承配置。从子站进入并注册的新用户会自动从主站同步到子站。

5、为什么国外谷歌脸书推特等无法登陆?

服务器需要能够科学上网,目前国内空间基本不支持。如果需要请联系我购买“代理登录”。

6、为什么升级新版后某些功能没有生效?

一般是服务器开启了缓存插件或者 CDN 所致,请清空缓存,并刷新重试。

7、微信开放号微信公众号有什么区别?

完全不同。视网站使用人群,开放号是在电脑端(针对电脑群体)用手机扫码来登录;公众号是在手机微信中(针对手机群体)自动登录。插件会自动识别浏览器类型而显示对应的图标。两者可以互相绑定(通过 UnionID)来识别同一微信用户。微信公众号回调地址设置:公众号设置 / 功能设置 / 网页授权域名(开放号叫授权回调域)。

——微信登陆要求:服务号、微信认证
——接口权限要求:网页授权获取用户基本信息(微信登录);生成带参数二维码、获取用户基本信息(关注登录)

8、为什么用户注册时有些卡顿

一般这是服务器发送通知邮件失败引起的,可以尝试安装邮件插件进行配置:WP-Mail-SMTP

9、如何统一已注册用户的路径为编号

安装并启用插件 Debug Editor,运行如下代码:

$users = get_users();
foreach ($users as $user){
    wp_update_user(array('ID' => $user->ID, 'user_nicename' => $user->ID));
}

更新日志

= 5.0.3 =
* 修正:微信公众号登录的显示问题

= 5.0.2 =
* 微信登录在不同平台默认显示
* 增强头像函数的兼容性
* 增加隐藏登录工具条的选项

= 5.0.1 =
* 修复绑定无效并直接跳回首页的BUG

= 5.0 =
* 新增:代码发布遵循 MIT 许可协议
* 优化:代码模块化基础代码不做限制

= 4.3 =
* 新增:同步到微博支持古藤堡编辑器
* 新增:支持调试微信服务器保存出错
* 新增:支持屏蔽无法正常加载的头像
* 修正:激活邮箱登陆模式下提示错误
* 修正:链接字段无效可导致无法保存
* 修正:微信分享弹出框页面样式兼容

项目地址

插件下载:最新测试版(github.com)wordpress.org | open-social.5.0.3

——打个小赏 感谢支持——

1 自动识别支付宝/微信/QQ支付

863 thoughts on “WP Open Social

  1. 阿智

    @Afly Post author
    不用了,谢谢,是主题自己单独弄了个获取头像代码

    1. Link

      不知道啊。得看看。

  2. 阿智

    你好,谢谢这款插件,但我使用中有一些问题

    虽然qq互联那里还在审核,qq已经可以正常登陆,用户名可以显示,但头像还是原来的,请问如何解决

  3. Link

    关于微信登陆的更新:开发者没认证,所以目前改为公众号登陆,只能从微信中打开,我测试已通过。大家有兴趣可以试试效果。

    1. 大颗粒_番石榴

      http://0920er.com/page/anniversary-6.html

      麻烦了~~ o(* ̄▽ ̄*)ブ

    2. Link

      看了应该是我逻辑的问题,之前没考虑老用户的问题。后面再考虑更新吧。
      如果你急着用,可将771行剪切覆盖到763行即可。

  4. 矢左

    QQ登录始终出现redirect uri is illegal(100010),而且qq互联那边提交审核了好几次都没有通过,什么回调url有错云云,百度了一下,在「http://ithtw.com/2872.html」找到答案,打开open-social.php,把class QQ_CLASS 里面的home_url(‘/’)统统换成home_url(),然后保存。搞定!可以登录了

    1. Link

      好了就好。其实回复里都有答案,只不过我没整理出来。后面整理成FAQ吧。

  5. 三十

    使用多账号绑定之后,后台用户头像空白,是否还需其他设置呢?

    1. Link

      我第一反应是不可能,一定是你打开方式不对。每次通过某社交网站登陆,都会保存该网站最新的头像。

    2. 三十

      修改了下主题函数已经可以正常显示了,有个想法就是,可否加个钩子优先判断显示默认的gravatar头像,或者直接钩子来选择头像的显示方式是社交还是gravatar的头像呢,不知能否实现?

  6. 矢左

    能不能在登陆前做一个选择,新用户直接选择注册,如果是老用户选择与已有帐户进行绑定!另外真的很希望可以绑定多个社交帐户,比如同时绑定QQ和微博!!!

    1. Link

      我根本不知道你在说啥,不好意思。你先用用再提意见吧:)

    2. 矢左

      一个开放注册的网站,已有账号的老用户在点QQ登陆的时候,告诉他如果已经有账号,可以选择和原账号绑定来登陆,如果是新用户第一次注册,就按现在的,自动给他注册一个账号。就是这个意思~

    3. Link

      谢谢,跟现在的逻辑不太一样,但也有道理,我得想想。

  7. 更新之后。有点不正常了。登录成功后还是会留在登录页面。

    1. Link

      什么网站?我未出现这种情况啊。

    2. www.enterwing.com 从= 1.5.4 =更新到1.6之后就出现了这种情况。今天一天都没找到愿意。本地注册的帐号都能正常登录。

    3. Link

      把调试开一下,应该是有其他报错导致登陆错误。

  8. xiaobaidonghui

    你好,启用Open Social的插件之后,对于现在已经注册了的用户,也显示“在发表评论前请先更新你的个人资料,谢谢。”这是要用户更新什么资料?已经注册的也需要他们至少绑定一个社交么?

    1. Link

      这算是BUG了,新版会修正这个问题。之前为了督促资料更新就做了这个判断,只考虑了不开放注册的情况。谢谢反馈。

  9. 小破孩

    请问博主能给个联系方式吗.比如QQ.方便寻求点帮助.

    1. Link

      右侧分享按钮就有了。

  10. 扁豆罐

    好像人人网和豆瓣网调用的头像非正方形的,评论的时候头像没有自动修复成矩形。

    1. Link

      看了下,代码不对头像做尺寸判断,只限定了宽为44像素。也允许有些马脸的,哈哈~

    2. 扁豆罐

      这马脸在圆形评论里面有点囧,跪求对策

    3. Link

      头像函数的高度和宽度设置为一样即可。新版会修正这个问题,这两天会发布。

  11. AARON

    想问一下,有没有办法绑定多个社交帐号?例如同时绑定QQ和微信这样,或者能给个提示从哪里下手改吗?

    1. Link

      主要是登陆时USERID的判断,单对单判断是否相等,单对多就判断是否包含,也不算太难。
      曾打算做这样的功能,后来觉得一般常用登陆方式一般就一个,干嘛弄那么复杂就没有做。

  12. Kis World.

    首先感谢您能提供open social如此简单,方便的插件,其次我想请教个问题。我完成了QQ登陆的账号配置,点QQ登陆按钮就出现如下错误:
    Warning: Cannot modify header information – headers already sent by (output started at /home/…/blog/index.php:2) in /home/…/blog/wp-content/plugins/open-social/open-social.php on line 200
    我的WordPress版本是:4.3
    Opensocial版本是:1.5.4

    1. Link

      这个警告跟代码无关,主要是服务器配置的关系。
      建议你把调试关掉即可,如果还有问题就需要修改服务器配置了。

    2. Kis World.

      谢谢回复,我的虚拟主机查看不到服务器php配置,不过希望你的回复对其他人有用,在此感谢。

    3. Link

      恩恩,具体你可以百度一下这个警告信息就知道怎么回事了。
      http://www.chinaz.com/web/2011/0930/212412.shtml

  13. ioio325

    首先感谢大哥的这个插件,功能真的很强大,我想请教一个问题,该插件支持使用微信登陆网站吗?插件我已经更新到最新的版本,使用微信登陆在手机扫描确认之后,PC网站返回错误,请问这是我的设置问题还是插件问题呀?现在插件的QQ和微博都可以正常登陆了

    1. Link

      理论代码是根据文档实现了的,但我没开通微信登录权限,所以也未有测试效果。
      微信需要年费开通这个功能的。

  14. 至尊屁屁

    下载后发现1.5.4相对于1.5.3的php代码并没有实质的更新啊。QQ登录段的’redirect_uri’=>home_url(‘/’).’?connect=qq&action=callback’也没有改为home_url()。二维码的识别以及分享干扰是体现在什么地方了呢?

    1. Link

      这次只更新了个 js,之前分享的微信二维码不太兼容。还有个分享时候简介有无效字符的问题。
      php 无更新。因为 qq 的登录问题后来发现回调域名设置带斜杠结尾即可。代码里的回调域名是多家社交网站统一的,就不改了。

  15. ↙-惢太乱灬

    请教一个问题,我修改了wp-login.php的路径,社交登录后回调地址怎么返回首页?

    1. Link

      有两种情况:一种是任意非登陆页面,这个会自动调回原页;登陆页,这个会自动读取登陆页的前一页,作为登陆后的返回页。
      这个逻辑是在 images/os.js 的 login_button_click 中实现的。如果修改了登陆页的文件名,需要修改第三行。你看着办。

  16. qhp925

    差点忘记,跳转窗口链接中 oauth_token= 点击后是空的,我手动填写上去也不管用

    1. Link

      你这个情况,一般是空间不支持翻墙。所以拿不到参数。

    2. DoYourGame

      您好,请问当用户第一次以新浪微博登陆后,我在新浪微博更换了头像后,博客内头像并不会改变对吗?

    3. Link

      会同步。新浪微博是静态路径,只要OPENID和APPID不变。
      就算有些动态路径的,再次登陆也会再次同步。

  17. qhp925

    推特登录一直提示 token 不正确 不知是哪里出错了,还望指教!
    “哇哦!
    该页面请求的 token 不正确。它可能已被使用过或者因为太旧已经过期。 请返回将你带到这里的网站或应用并重试;这大概仅仅是个错误。”

  18. 酷儿

    你好,感谢你的辛苦付出,插件很实用。
    不过最近遇到问题,QQ互联的规则改了,按照楼上的提示,QQ管理中心的回调地址写http://www.mysite.com,open-social.php中的两个’redirect_uri’=>home_url().’?connect=qq&action=callback’也去掉了’/’。
    结果是QQ授权页面打开了,但授权登录后回调的地址变成了http://www.mysite.com/?connect=qq&action=callback&code=69965FD6EF42F93D740B3FB97C78F8F1&state=c7f66a17b9cb5688411fe8190eef5b63,chrome中显示空白,IE中报500错误。

    请问有什么办法解决吗?

    1. 酷儿

      补充:

      我在服务器的apache日志中查询到以下记录:
      PHP Fatal error: Maximum execution time of 30 seconds exceeded in D:\\wwwroot\\mysite.com\\wp-content\\plugins\\open-social\\open-social.php on line 890

      open-social.php 890行的内容是:$response = curl_exec($ci);

      在Afly你的网站上QQ登录就没问题,为什么我的会出现这种现象呢?

    2. 酷儿

      问题已解决。程序没有问题,是服务器对QQ互联地址的解析出了问题。

      谢谢!

    3. Link

      是得。QQ互联的回调地址需要带斜杠。

  19. 阿拉蕾

    最重要的微信分享用不了,点上去毫无反应。其他分享倒是都可以用…

    1. Link

      QQ互联规则有更新,具体修复方法见上楼。

  20. Zi Lang

    你好,很好的插件。想请教一下callback中的代码我应该怎样写?比如我的callback是在:http://myurl.com/callback/qqcallback.php。查了半天没找到文档,望指教。谢谢。

    1. Zi Lang

      不好意思,没写清楚,我是指qq的callback,估计其他也是需要callback获取access token,不过你没放到插件里面吗?谢谢

    2. Link

      QQ互联最近规则有变动:QQ互联后台的回调用域名即可、插件代码的回调地址的末尾是否有斜杠(/)需要对应。
      插件代码中是:home_url(‘/’) ,所以QQ互联的后台域名需要带斜杠,形式如:http://www.abc.com/

    1. Link

      姑且跟网站地址一致吧,这个没疑问的吧。:(

  21. 生活月刊_澳洲

    你好!Open Social这个插件很好,功能很齐全!
    但自从更新网站到4.2.2后,就用不了微信分享,点微信标志没有反应,如何解决?其他social按键都没有问题。需要紧急帮助!
    请测试: http://lifemonthly.org/?p=1892

    1. Link

      不好意思,是有个兼容行的问题。可以将 images/os.js 文件第 11 行:
      var qrDiv = jQuery(elm).next(‘.open_social_qrcode’);
      改为:
      var qrDiv = jQuery(elm).parent().find(‘.open_social_qrcode’);
      我自己也没搞明白当时本地测试我是OK的,但发布之后就不行了,下个版本更新吧。

    2. 生活月刊_澳洲

      已改成 var qrDiv = jQuery(elm).parent().find(‘.open_social_qrcode’);
      可是还是不行。请测试: http://lifemonthly.org/?p=1892

    3. Link

      强行刷新浏览器缓存即可生效。如 CTRL+R。

    4. 生活月刊_澳洲

      你那边点开我们的网站测试“微信分享“是否有反应,我这里还是没反应已经强制刷新了。也用了另外一台电脑测试还是无效。

  22. 我用着个插件登陆不了啊 显示redirect uri is illegal(100010)

    1. Link

      帐号(回调地址)没有设置正确。

  23. 灬罗密呕°

    你好,作者,之前我还买了QQ连接微博,一堆加密的东西,真心不好。
    无意中才发现这个好东西。
    现在出现一个问题,小工具里的,读者墙和最新评论,无法获取这些第三方登录发表的评论!

    1. Link

      最新评论是OK的。读者墙这个不清楚,是插件么?

  24. 晓坤

    请问为什么没有个人设置页面呢.. 比如设置自己的头像或者名称..

    1. 晓坤

      经过测试发现,前台是gravatar头像,后台是QQ头像…

    2. Link

      1、只有通过插件注册的帐号有第三方登陆同步的头像
      2、可能是模板关系,有些模板的头像函数优先级可能高于插件

    3. Link

      系统个人资料页有的。没有做头像设置功能,太麻烦了。名称这个后面会做更好修改一点。

  25. pakc

    wechat:Scope 参数错误或没有 Scope 权限
    enable后就试验一下,版面就”Scope 参数错误或没有Scope 权限”是什么问题?

    1. Link

      微信的登陆嘛,我没开通。代码仅仅是理论上的,哈哈。

  26. 挺喜欢这个插件的。微博登录没问题,QQ登录有错误。我又不懂,不知道怎么解决。

    1. Link

      为什么不更新一下自己的资料,我好回访。

  27. 提示错误代码QQ登录。100016怎么解决呢?我用别的插件没有这个错误。系统自带的也没有。

  28. 贪吃爱玩

    这个插件真的很不错,赞一个
    如果绑定帐号后,可以自动同步评论,如果游客发表评论,能够自动同步的自己的微博,就好了。
    L
    微博和QQ最常用的这,大家就满足的

    1. Link

      本身这个功能倒是不难做,对宣传微博或网站也有一定的作用。只是我对微博上面的垃圾内容太反感,才一直没有做呢。

  29. zaneyu

    作者你好,非常感谢你写了这么棒的插件。
    不知道之后有没有机会增加对 FontAwesome 的支持并让用户选择使用现有彩色图标或者 font icons?因为彩色图标和一些极简设计的主题(比如只使用黑白灰配色)不是很相称,而 font icon 在主题上会比较能够百搭。并颂 时祺。

    1. Link

      我倒是同意你的看法,就是我的前端功力没你想象那么牛而已。有空再研究下吧。

  30. 有事您说话,别问在不在

    这款插件很好用,但是并不精简,大多说wordpress作者只需要QQ登陆和微博登陆即可。不知道作者能否抽个时间做一款精简瘦身版呢?分享和这些小工具都是不需要的,我想大家都在用百度的分享功能,那么这样的代码和功能岂不是冗余的呢?是不是画蛇添足呢?
    希望作者能出一款真正意义上的QQ+微博登陆插件,然后等着名垂千史吧。

    1. zaneyu

      Irrelevant.

    2. Link

      我想不会这样做了,本身代码量和功能我认为已经算精简的了。不需要的按钮不勾选就行。无需这么洁癖+强迫症吧:)

  31. leehom

    大哥,这个插件功能确实非常强大!
    先谢谢了。不过我除了QQ过不了,其它都能过。百度了一下说是QQ互联换了规则?
    我填写了APPID和APP KEY,点QQ登录是redirect uri is illegal(100010)。不知道如何处理。在下PHP菜鸟。请赐教!我的网站:http://www.ithtw.com

    1. Link

      我用小号尝试登陆,没问题呢:)

  32. Anthony Reno

    Hello, there seems to be coding errors on the WeiBo and Twitter buttons on my site. Can you have a look please? http://meishangzhiku.com/ Thank you.

    1. Link

      sorry,found nothing about my plugin on your site.

  33. 我不想用插件,直接用代码的形式写入到主题中,能实现吗?非常感谢

    1. Link

      这个会有难度。不是一两个函数那样简单。

  34. 浪费时间好无趣

    一直都有的这个提示能不能改掉呢,强迫症伤不起啊
    Strict Standards: Only variables should be passed by reference in /var/www/wordpress/wp-content/plugins/open-social/open-social.php on line 111

    1. Link

      define(‘WP_DEBUG’, false);//wp-config.php中将DEBUG改为false即可。
      后面的版本我优化掉这个提示吧。不影响使用的。

  35. DOUBAN51322841

    楼主你好,冒昧问一下,这个插件有兼容其它同类插件吗?比如:wp-connect(免费版滴)?对于小白来说,数据转移很麻烦啊。我在本地安装试了一下,原来wp-connect产生的用户头像,启用Open Social之后都无法显示了。如果能兼容就方便了,很多人都有我这种需求吧。

  36. Link

    是我的失误抱歉了,函数不太熟(为空需要返回默认语言的),请继续升级1.5.3。
    现在跟后台管理员设置的语言为准;个人资料页切换只对自己有效。

  37. OWenT

    感谢你的插件,但是最新版本貌似会导致wp变全英文

  38. Link

    自动适应浏览器语言的问题做了更正,不算BUG,是我一开始的想法可能跟大家不太一样。对有此困扰的朋友说声抱歉了。

  39. SimonXu

    我在wordpress4.1.1上使用这个插件,但是出现奇怪的问题:

    1)安装并启动插件,后台界面由简体中文直接强制变成英文
    2)后台设置语言英文->中文,没有任何效果
    3)停用插件,后台界面马上变回中文

    请问是否有办法解决这个BUG?

  40. 冯健

    您好: 很感谢您制作了一款这样的wordpress插件

    不知可否后续开发一下 兼容wocommerce的中文社交网络登陆插件。

    再次感谢!

    john feng

  41. 2011²º¹¹

    您好,首先非常感谢您提供这样一个插件,产品狗技术盲的福音!其次莅临贵地主要想要咨询一个问题,就是我现在的网站已经关闭用户浏览后台,把用户资料什么的都搬到前台了(用的是user Frontend pro这个插件),但是
    1.用QQ或者weibo登陆的时候发现一个致命的问题,就是登录后系统会自动生产一串QQ或weibo开头的用户名,如果是以前后台开放是可以在那里修改一次的,但是前台的用户名那里就一直是灰色的,没有更改的机会。
    2.一般用第三方登录后会在后台差生一个按钮叫《取消QQ的登陆绑定》,请问这个怎么接到前台呢?是不是要写一段hook挂上去?因为user Frontend pro是可以在制作表单的时候 hook的。
    最后,无论能否得到您的回答,在此都非常感谢!