Evernote SetSharedSessionConsumerKey在Outlook VBA宏

时间:2017-09-28 15:54:50

标签: evernote

我在Outlook中有一个VBA宏,它将选定的邮件移动到我的存档文件夹中,并获取该邮件的URL。我也想把这个消息添加到Evernote,比如" Save to Evernote"加载项并自动将邮件添加到邮件中作为邮件的网址。

我下载了Evernote Cloud SDK的COM设置: https://github.com/evernote/evernote-cloud-sdk-windows/tree/master/COM%20Setup

然后我注册并收到了此应用程序的Evernote API密钥(消费者密钥和消费者密钥)。

我在沙箱中有一个帐户。

我添加了对Evernote Cloud SDK的引用,并编写了一些简单的代码来测试它是否正常工作。

但是,检查SharedSession.IsAuthenticated时,以下代码失败。

代码:

Public Sub CreateNote()
   Const Key = "MY KEY"
   Const Secret = "MY SECRET"
   Const Host = "sandbox.evernote.com"

   Dim evernoteSession As New ENSessionForCOM
   Call evernoteSession.SetSharedSessionConsumerKey(Key, Secret, Host)

   If evernoteSession.SharedSession.IsAuthenticated = False Then
       evernoteSession.SharedSession.AuthenticateToEvernote
   End If     
End Sub

错误:

Run-time error '-2147024809 (80070057)'

Cannot create shared Evernote session without either a valid
consumer key/secret pair, or a developer token set.

我想也许我太快尝试了,但已经快24小时了。我做错了什么?

1 个答案:

答案 0 :(得分:0)

经过大量的反复试验,我终于找到了解决方案。我需要创建一个ENSessionForCOM对象,而不是ENSessionAdvancedForCOM。所以现在代码看起来像这样:

Public Sub CreateNote()
   Const Key = "MY KEY"
   Const Secret = "MY SECRET"
  Const Host = "sandbox.evernote.com"

   Dim evernoteSession As New ENSessionAdvancedForCOM
   Call evernoteSession.SetSharedSessionConsumerKey(Key, Secret, Host)

   If evernoteSession.SharedSession.IsAuthenticated = False Then
      evernoteSession.SharedSession.AuthenticateToEvernote
   End If     
End Sub

它现在已经过身份验证。