我无法让我的应用在生产环境中工作。
首先,我创建了API凭据,并使用它们在Evernote沙箱上对我的网站进行身份验证。我只需要抓取一些注释,而不是创建一个Web服务,所以我假设dev令牌就足够了?
我已经生成了一个dev令牌,现在用它连接到客户端。一切都在开发上很好。
我现在已经开始投入生产并让Evernote将我的API凭据移动到他们的实时服务器......与沙盒一样,我在我的帐户上生成了一个新的开发令牌,并在我的真实帐户上验证了我的网站。
但是,每当我尝试通过他们的PHP Cloud SDK返回一些注释时,我都会收到以下错误:
EDAMSystemException in UserStore.php line 3210:
authenticationToken
以下是我用来调用API的代码:
$this->client = new Client($token);
$note = $this->client->getNote($this->request->guid); // note guid
然后我可以做像$note->title
之类的东西 - 这在开发中非常有用,而不是生产。
Token看起来像这样:
S=s123:U=4567ab1:E=12ecf234a67:C=2345678fa58:P=1cd:A=en-devtoken:V=2:H=12adf1b71184568a7434e1a966g0b1d1
(不是我的真实代币)
令牌是从我的实时Evernote帐户生成的。
由于
答案 0 :(得分:1)
我设法通过向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开发文档非常糟糕。
答案 1 :(得分:0)
好像你正在做的一切...... 我建议的是仔细检查你的PHP字符串中是否有额外的字符(例如空格)。
如果您确定您的令牌是正确的,您可能需要联系evernote支持并要求他们检查您的凭据。
他们可能是个错误。