WordPress发布文章同步到新浪微博失败的问题解决与分享

张戈博客很久之前分享过一篇 WordPress发布文章同步到新浪微博 的文章,但经常有站长留言反馈同步失败,我一直觉得是代码部署问题。

最近很长一段时间,张戈博客也无法同步,我又觉得是微博自身的问题。直到近期抽空DeBUG了一下微博同步,取得了返回结果,才发现是由于网站IP变更导致的!

一、网站IP变更

如下是我DeBUG取得的返回 json 结果:

WordPress发布文章同步到新浪微博失败的问题解决与分享

格式化如下:

其中“Ip Limit, request ip is not contained in safety ip”很明显的指出了错误原因:当前IP不在微博服务器白名单列表当中,说白了就是网站换了IP地址,和你之前申请微博应用时填写的IP不一致了!

前往新浪微博开放平台看了下,里面设置的IP果然还是之前的老IP:

WordPress发布文章同步到新浪微博失败的问题解决与分享

所以,如果发现你部署了代码,却总是无法同步,请前往微博开放平台,如图查看并更正一下网站现用服务器的IP地址。

当然,修改后会进入二次审核状态,耐心等待好了。WordPress发布文章同步到新浪微博失败的问题解决与分享

Ps:其实最后我发现这里可以不填写任何IP,免得下次网站更换服务器又忘记修改了!反正大部分人也不怕自己的微博被盗用。

二、DeBUG 方法

如果,上述分享还不能解决你的问题,最后张戈再分享本文用到的DeBUG方法。

原理很简单,所谓的DeBUG就是取得微博同步的返回值,看下到底是什么原因不能同步。

DeBUG代码如下:

先根据自己微博修改以上代码中的微博 app_key、用户名、密码。

然后,将最后一句代码中的5082改成你博客已发布文章的ID。

最后,将代码保存为php文件(比如 test.php),上传到网站根目录并在浏览器访问即可看到微博同步返回的结果了!

能看到失败原因,相信问题已经解决了一半,是不是又学到了一招呢?

三、https导致失败

早上发现IP变更已经审核通过了,就更新文章试了下,还是没有同步成功!呐尼?

然后,又试了下DeBUG大法,发现返回如下:

error:does multipart has image? 什么鬼??

网上找了半天,基本都是说图片不是本地的,或者上传封装得不对之类的。

于是,强行将 $url 这个变量指定为具体图片地址,发现还是这个错误:

$url= 'https://zhangge.net/logo.png';

甚至,直接试了下图片的本地物理路径也不行。。。

最终,发现把https改成http就好了!!!原来不支持https图片?

那我把 $url 中的https强行替换成http就好了:

果然,替换后就成功了:

WordPress发布文章同步到新浪微博失败的问题解决与分享 WordPress发布文章同步到新浪微博失败的问题解决与分享

如果还是不行,请留言联系张戈!

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:100   其中:访客  80   博主  20

  1. 心乐 1 来自天朝的朋友 谷歌浏览器 Windows 7 江西省宜春市 电信

    感谢张大大的分享,现在https图片无法支持的问题是不是依旧没办法解决。
    因为部署https只能强制全站301跳转,文章的图片使用还是会以https提交上去,导致微博同步失败。
    这种情况是不是只能关闭301重定向或取消带图推送。有没有其他办法能解决问题

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      强制301跳转排除图片即可

      • 心乐 1 来自天朝的朋友 谷歌浏览器 Windows 7 江西省宜春市 (樟树市)电信

        感谢大大回复提供思路,我是用IIS7 URL重写来进行的http跳转301https的。为了解决https图片无法推送,新增排除规则(.jpg.gif)目前已经解决问题,下面是web.config的两条规则,可供参考。

        • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

          代码好像上不来。。被过滤了,发我邮箱吧

        • NVZA 2 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

          我是iis7.5环境,这些写了web.config规则后还是不能实现http跳转https,请问应该怎么弄

  2. 唯一度博客 0 来自天朝的朋友 谷歌浏览器 Windows 10 上海市 电信

    由于微博开放平台应用的升级,

    微博高级写入接口:该接口功能即将下线,请使用微博SDK分享实现。

    所以这篇文章要修改了

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      近期会重新开文测试下SDK的用法。

  3. 新手 0 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市 电信

    微博高级写入接口2017-06-14 申请驳回
    该接口功能即将下线,请使用微博SDK分享实现。
    感谢大大分享,可今天申请接口却被拒绝了,有没其他办法。。。

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      SDK方式我近期抽空测试下吧

  4. 安静 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省武汉市 电信

    博主,你好。那我把 $url 中的https强行替换成http就好了:这段代码添加在什么地方,还有现在我的是全站https 做301强制跳转。现在该怎么处理呢?

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      1、$url相关代码加在如下代码之后:

      2、强制301必须排除图片,把强制301的规则修改如下即可(之前加的强制301需要删除):

      • 安静 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省 电信

        你好,那在1
        $url = get_mypost_thumbnail($post_ID);下载添加什么代码呢?

        • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

          文章中明明有:

  5. 李彦宏 0 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省长沙市 电信

    你这个繁体的能不能取消掉呢?还有这个评论在动的,用户体验真的不是太好

  6. colt 0 来自天朝的朋友 谷歌浏览器 Windows 7 浙江省 电信

    那个同步的话需要高级写入接口已经下线了 使用新的sdk 来接入,博主抽时间来更新一下相关的代码吧

加载中,请稍候...