最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】调试WordPress插件Evernote sync

WordPress crifan 3842浏览 0评论

之前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-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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.168 seconds, using 22.12MB memory