我想通过我们的应用程序在“EverNote”中存储一些数据

时间:2012-12-27 09:57:30

标签: iphone objective-c ios evernote

我想通过我们的应用程序(图像或文本或两者)在“EverNote”中存储一些数据。

我用Google搜索,我得到了一些像EverNote SDK的指导,我也得到了EverNoteCounter示例(当我运行它时,当我点击getCount按钮时,它会显示一条警告消息“无法进行身份验证”)。 我也生成了开发人员令牌。

但我无法创建consumerKey,consumerSecret。而且我也没有找到如何将我们的数据存储到我们的应用程序中。

我收到了一些像this一样

的链接

但是当我浏览该链接时(此URL不支持HTTP方法GET)

我能够通过EVERNOTE进行身份验证,并且能够获得该帐户中的笔记本数量。

我在我的应用中使用sqllite。我正在使用一个文件夹的图像。 Sqllite有图像链接信息。

如何存储数据。

我使用以下代码进行身份验证并获取计数

    - (IBAction)retrieveUserNameAndNoteCount:(id)sender
{
    // Create local reference to shared session singleton
    EvernoteSession *session = [EvernoteSession sharedSession];
    [session authenticateWithViewController:self completionHandler:^(NSError *error) {
        // Authentication response is handled in this block
        if (error || !session.isAuthenticated) {
            // Either we couldn't authenticate or something else went wrong - inform the user
            if (error) {
                NSLog(@"Error authenticating with Evernote service: %@", error);
            }
            if (!session.isAuthenticated) {
                NSLog(@"User could not be authenticated.");
            }
            UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" 
                                                             message:@"Could not authenticate" 
                                                            delegate:nil 
                                                   cancelButtonTitle:@"OK" 
                                                   otherButtonTitles:nil] autorelease];
            [alert show];
        } else {
            // We're authenticated!
            EvernoteUserStore *userStore = [EvernoteUserStore userStore];
            // Retrieve the authenticated user as an EDAMUser instance
            [userStore getUserWithSuccess:^(EDAMUser *user) {
                // Set usernameField (UILabel) text value to username
                [usernameField setText:[user username]];
                // Retrieve total note count and display it
                [self countAllNotesAndSetTextField];                
            } failure:^(NSError *error) {
                NSLog(@"Error retrieving authenticated user: %@", error);
            }];
        } 
    }];    
}

- (void)countAllNotesAndSetTextField
{
    // Allow access to this variable within the block context below (using __block keyword)
    __block int noteCount = 0;

    EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore];
    [noteStore listNotebooksWithSuccess:^(NSArray *notebooks) {
        for (EDAMNotebook *notebook in notebooks) {
            if ([notebook guid]) {
                EDAMNoteFilter *filter = [[EDAMNoteFilter alloc] init];
                [filter setNotebookGuid:[notebook guid]];
                [noteStore findNoteCountsWithFilter:filter withTrash:NO success:^(EDAMNoteCollectionCounts *counts) {
                    if (counts) {

                        // Get note count for the current notebook and add it to the displayed total
                        NSNumber *notebookCount = (NSNumber *)[[counts notebookCounts] objectForKey:[notebook guid]];
                        noteCount = noteCount + [notebookCount intValue];
                        NSString *noteCountString = [NSString stringWithFormat:@"%d", noteCount];
                        [noteCountField setText:noteCountString];
                    }
                } failure:^(NSError *error) {
                    NSLog(@"Error while retrieving note counts: %@", error);
                }];
            }
        }        
    } failure:^(NSError *error) {
        NSLog(@"Error while retrieving notebooks: %@", error);
    }];
}

请建议我链接或给我指导

提前多多感谢

2 个答案:

答案 0 :(得分:2)

只需访问自己的帐户即可使用开发人员令牌。要获得消费者密钥/秘密,请转到此处:http://dev.evernote.com/documentation/cloud/

如果您使用的是iOS,https://github.com/evernote/evernote-sdk-ios有一个示例应用,您可以在拥有消费者密钥和密钥后使用该应用。

一般来说,dev.evernote.com上有很多信息。

所有SDK均位于https://github.com/evernote

iOS入门指南:http://blog.evernote.com/tech/2012/05/24/evernote-sdk-integration-ios/

答案 1 :(得分:0)

你解决了吗?如果没有,我做了以下工作让它工作:

  1. 下载并包含sdk
  2. 获取consumerKey和secret(如果你也想访问笔记,那么 而不是基本的,你应该要求完全访问,http://dev.evernote.com/documentation/cloud/右上角)
  3. 在info.plist中添加URLType条目(“修改应用程序的主要内容 plist文件“章节https://github.com/evernote/evernote-sdk-ios
  4. 复制会话初始化代码(填充使用者密钥和密钥,主机名应保持不变)并实现两个应用程序委托特定代码
  5. 应该传递一个(屏幕上)viewcontroller来验证用户authenticateWithViewController方法,例如。 appdelegate的rootViewController
  6. 研究此页面以了解Evernote使用的模型层次结构:

    http://dev.evernote.com/documentation/cloud/chapters/data_structure.php http://dev.evernote.com/documentation/reference/Types.html

    图像可以在字段data中存储为EDAMResource(资源),在字段content中作为EDAMNote(注释)存储。两者都由Evernote SDK的EvernoteNoteStore对象处理。