Token 在 Dev 中有效,但在 Prod 中无效。 EDAMSystemException AuthenticationToken

Token works in Dev but not Prod. EDAMSystemException AuthenticationToken

我无法让我的应用程序在生产环境中运行。

首先,我创建了 API 凭据并使用它们在 Evernote 沙盒上验证我的网站。我只需要抓取一些笔记,而不是创建一个网络服务,所以我假设开发令牌够了吗?

我已经生成了一个开发令牌,现在用它来连接到客户端。一切都在开发上运行良好。

我现在已经转移到生产环境并让 Evernote 将我的 API 凭据移动到他们的实时服务器...与沙盒一样,我在我的帐户上生成了一个新的开发令牌,并在我的实时帐户上验证了我的网站.

但是,每当我尝试通过他们的 PHP Cloud SDK return 一些笔记时,我都会收到以下错误:

EDAMSystemException in UserStore.php line 3210:
authenticationToken

这是我用来调用 API:

的代码
$this->client = new Client($token);
$note = $this->client->getNote($this->request->guid); // note guid

然后我可以做类似 $note->title 的事情 - 这在开发中很有效,但在生产中效果不佳。

令牌如下所示:

S=s123:U=4567ab1:E=12ecf234a67:C=2345678fa58:P=1cd:A=en-devtoken:V=2:H=12adf1b71184568a7434e1a966g0b1d1

(不是我的真币)

令牌是从我的真实 Evernote 帐户生成的。

谢谢

看来你做的一切都是对的... 我的建议是仔细检查您的 PHP 字符串中是否没有多余的字符(例如 space)。

如果您确定您的令牌是正确的,您可能需要联系 evernote 支持并要求他们检查您的凭据。

这可能是他们这边的错误。

我通过向 Client 方法提供其余参数来设法自己修复它。

查看 SDK 代码 Client.php:

public function __construct($token = null, $sandbox = true, $advancedClient = null, LoggerInterface $logger = null, $china = false)

一切都有默认值,所以我想我在使用真实账户时所做的任何工作都被强制返回沙箱。

\Client($token, false, null, null, false) 修复了问题。

我可能应该更深入地研究它,但 Evernotes 开发文档非常糟糕。