之前Wordpress插件Evernote sync可以正常使用developer token去同步印象笔记中的帖子的。
后来evernote停了developer token:
【未解决】印象笔记无法创建token了:Update: the creation of developer tokens is temporarily disabled
结果Evernote sync就无法正常使用了。
但是呢,点击手动同步,本以为会报个token无法使用之类的错误的,但是却又没有任何错误信息。
后来无意间通过小书匠而获取了个OAuth的token:
【未解决】印象笔记无法创建token了:Update: the creation of developer tokens is temporarily disabled
填进去后,也还是无法同步。
在本地搭建了MAMP环境,安装了wordpress环境,以及,
【已解决】Mac中如何实现实时调试本地wordpress中插件的php代码
搞定了PhpStrom去调试php代码后,就可以去调试evernote sync了。
尝试:
搞懂同步失败的地方,以及把之前的developer token换成此处的OAuth的token,看看能否继续同步帖子。
调试发现是:
// 初始化笔记操作对象 $client = $sync->getClient(); // 搜索标签下的笔记 $results = $sync->searchNotes(); |
返回的result是null的:
从而无法继续同步。
而关于此处的evernote的php的sdk的话,也去找了找:
evernote php
发现有两个SDK:
evernote/evernote-sdk-php: Evernote SDK for PHP
200+ star
以及官方推荐的:
Documentation – Evernote Developers
-》
evernote/evernote-cloud-sdk-php
100+ star
文档:
evernote-cloud-sdk-php/Getting_Started.md at master · evernote/evernote-cloud-sdk-php
evernote-cloud-sdk-php/find_notes.php at master · evernote/evernote-cloud-sdk-php
发现evernote-sdk-php是之前的,最后是2016年更新的
而官网的evernote-cloud-sdk-php是最新的,最后是最近更新的
所以还是尽量参考最新的evernote-cloud-sdk-php
先去下载最新的evernote-cloud-sdk-php的代码
和此处evernote-sync对比,看看库文件是不是最新的。
然后从:
https://github.com/evernote/evernote-cloud-sdk-php/commits/master/src/Evernote/Client.php
和:
https://github.com/wp-plugins/evernote-sync/commits/master/src/Evernote/Client.php
比较,得知:
官方库evernote-cloud-sdk-php:最后更新是2016年
中才添加对于app.yinxiang.com的支持
-》那也有点怪,为何之前是可以更新yinxaing的数据的?
evernote-sync中的evernote库:最后更新是2015年
总之:是要把当前,旧的:
evernote-sync中的evernote库
更换为最新的官网的:
evernote-cloud-sdk-php最新的库(中的src目录下面的代码)
不过在去更新最新代码之前,还是要去看看,到底内部是哪里出错。
毕竟之前是可以正常同步的。
后来发现了,之前也是有同样逻辑的:
是通过
// 根据不同的平台调用接口 if (get_option(‘evernotesync_platform’) == 2) { // Evernote 同步 $this->client->getAdvancedClient()->setEvernote(); } else { // 印象笔记同步 $this->client->getAdvancedClient()->setYinxiang(); } |
中的setYinxiang去设置对应的api的地址的。
结果调试了半天,发现:
此处默认的查询tag搞错了:之前设置为synctowp
现在印象笔记中没有这个tag的帖子,只有syncp的帖子。
所以查询标签改为syncp,真的是可以找到帖子的:
所以接着调试,就很怪的,能正常执行同步了:
-》这期间,代码也没改过,就只是确保了同步的标签是对的。其他没变化啊
-》不过遇到一个问题:
同步了3,4个帖子后,然后好像死掉了。
-》按照道理来说,同步内容到本地localhost的wordpress的速度,不应该太慢,不应该没有响应才对。
-》暂时还没找到原因。
那就去自己crifan.com网站上,试试同步此时是否可用。
也先去把一次性同步的帖子个数从20改小为10:
然后保存选项。
然后再去手动同步看看:
好像页面就死掉了的感觉。
-》还是要抽空调试搞清楚,为何中间会死掉
-》不过按照localhost的效果,即使中间死掉,前面还是能成功同步部分帖子才对。
再次调试,好像的确是,瞬间就同步完成了-》而实际上一个帖子都没同步成功
不过此处是:
// 判断文章是否更新 if ($sync->checkUpdated($result)) { continue; } |
判断是成功同步了,所以跳过
-》但是实际上至少此处的10个帖子,没有全部同步过。只有部分同步了。
-》那去清除本地同步后的记录,再去试试
果然crifan.com上,更新了半天后,一个都没法同步
去看了看配置,发现个奇怪的现象,之前设置的一次性同步10个,现在又变回20了:
-》之前设置的参数,都被还原了?
有点奇怪啊。
去后台mysql数据库中看看evernote sync相关的数据库看看是否有啥不正常的,为何参数配置了又被还原了。
去看了,清除同步记录后,对应表wp_evernote_sync_record的记录是空了的:
另外,也去:
wp_options
中找到了,evernotesync_相关的配置参数:
不过,crifan.com中,同步帖子数,改为1,然后去同步,显示同步成功了
然后再去草稿中看看,果然是同步了1个帖子了。
那再去试试,一次性同步2个帖子,结果是:也成功同步了
所以看来是:
之前一次性同步20个或10个,太多了
-》内部估计是超时了?总之是导致同步失败
-》而每次同步个数少点,就可以了。
再去试试一次同步5个,是否会超时-》结果也是可以的。没有问题。
【总结】
所以之前通过小书匠的网页端获取的OAuth的token,是有效的,可以用来正常的同步帖子。
而之所以之前同步有问题,可能是由于:
部分帖子,比如之前的“【整理】利用极光推送JPush实现消息推送”中的内容太多格式太复杂(有代码,且是加了样式的代码)导致内部处理format格式化时耗时太长,超时了,所以无法继续同步。
而后续换了个同步的标签,尝试同步其他正常的帖子,都是可以正常的同步的。
暂时每次最多5个帖子。否则容易超时而无法同步。
-》总之,还是可以用(通过小书匠网页端获得的)OAuth的token正常去用Evernote-sync的同步印象笔记中的帖子的。
然后:
那接着继续去看看,之前的那个bug:
【已解决】调试并解决Evernote-sync的wordpress帖子发布时间差8小时的bug
然后继续去:
【已解决】给wordpress插件evernote-sync添加同步帖子的post_name即slug别名
然后继续去:
【未解决】给wordpress插件evernote-sync添加处理帖子中1×1的表格替换为pre格式的代码
转载请注明:在路上 » 【已解决】调试WordPress插件Evernote sync