Evernote SetSharedSessionConsumerKey 在 Outlook VBA 宏中不起作用

Evernote SetSharedSessionConsumerKey Does not Work in Outlook VBA Macro

我在 Outlook 中有一个 VBA 宏,它可以将选定的邮件移动到我的存档文件夹中,并为该邮件获取一个 url。我还想像 "Save to Evernote" 加载项一样将消息添加到 Evernote,并自动将 url 添加到消息中作为笔记的 url。

我下载了 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 小时了。我做错了什么?

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

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

现在已经通过身份验证。