Evernote SDK:无法将笔记上传到我的 Sandbox 帐户

Evernote SDK: Cannot upload a note into my Sandbox account

我按照 Evernote github 教程“https://github.com/evernote/evernote-cloud-sdk-ios/blob/master/Getting_Started.md”将笔记从我的 iOS 应用程序上传到 evernote。在 运行 和构建之后,我无法在我的沙盒帐户中创建笔记。

//AppDelegate.m
#import <ENSDK/ENSDK.h>
@implementation AppDelegate

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

// Initial development is done on the sandbox service
// When you want to connect to production, just pass "nil" for "optionalHost"
NSString *SANDBOX_HOST = ENSessionHostSandbox;

// Fill in the consumer key and secret with the values that you received from Evernote
// To get an API key, visit http://dev.evernote.com/documentation/cloud/
NSString *CONSUMER_KEY = @"my_consumerkey";
NSString *CONSUMER_SECRET = @"my_consumer_secret";

[ENSession setSharedSessionConsumerKey:CONSUMER_KEY
                        consumerSecret:CONSUMER_SECRET
                          optionalHost:SANDBOX_HOST];
}

//My EditTextController
#import "EditTextController.h"
#import <ENSDK/ENSDK.h>
@implementation EditTextController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.textEditor setText:self.textstring];
_textEditor.font = [UIFont fontWithName:@"HelveticaNeue" size:24];
_textEditor.textColor = [UIColor blueColor];

//Initializing and creating ENNote and assigning a note content
ENNote * note = [[ENNote alloc] init];
note.content = [ENNoteContent noteContentWithString:self.textstring];
note.title = @"My First Note";
[[ENSession sharedSession] uploadNote:note notebook:nil completion:^(ENNoteRef * noteRef, NSError * uploadNoteError) {
      if (uploadNoteError==nil) {
        NSLog(@"Upload successful");
    }
    else
        NSLog(@"Error%@",uploadNoteError);
}];
}

//错误是Domain=ENErrorDomain Code=2 "(null)"

我会冒险并假设错误代码对应于此处定义的 ENErrorCode 枚举:

https://github.com/evernote/evernote-cloud-sdk-ios/blob/master/evernote-sdk-ios/ENSDK/ENError.h#L36

“2”将是突出显示部分,即 ENErrorCodeAuthExpired,这表明您的身份验证凭证有问题。

您似乎并未在此处实际验证任何用户。在调用 -uploadNote:.. 方法之前,您需要对用户进行身份验证,以便 SDK 在调用服务时成功连接到特定用户的帐户。

Details are here 在 Github 上的入门文档中,但基本上您需要在 UI 中放置某种 "connect to Evernote" 按钮并调用-authenticateWithViewController... 方法等。

(如果您只是想测试一下,请尝试将其放入您的 -viewDidLoad(或 -viewDidAppear)方法中,并在其完成块中调用上传笔记内容。)