Ich arbeite mit der Evernote API versuchen, verknüpfte Notebooks aus unserer Webanwendung zu machen.Erstellen von LinkedNotebooks aus API
Wir verwenden evernote-sdk-js-Version der API.
Wir sind in der Lage, das freigegebene Notebook von der API zu erstellen. Außerdem können wir ein Linked Notebook erstellen und eine gültige Antwort erhalten. Das Problem ist, dass das verbundene Notebook nicht funktioniert. Das Notebook wird im ListLinkedNotebook API-Anruf zurückgegeben, aber wenn ich versuche, es zu autorisieren, erhalte ich einen Fehler.
Error { identifier: 'SharedNotebook.id', key: 'xxxx' }
Von was ich gelesen habe bedeutet, dass das Notebook nicht mehr vom Besitzer geteilt wird. Dies ist nicht der Fall, da das Konto des Besitzers die ausstehende Anfrage weiterhin im Fenster "Freigabe" anzeigt.
Hier ist der logische Fluss:
1) Der Benutzer gibt E-Mail-Adresse der Person, sie wollen mit Notebook teilen. Es wird eine Anfrage an unseren Server gestellt, um ein ShareNotebook zu erstellen.
Wir schaffen eine Geteilt Notebook wie folgt aus: (von Owner Konto)
var notebook = new Evernote.SharedNotebook();
notebook.notebookGuid = guid;
notebook.email = email;
notebook.privilege = Evernote.SharedNotebookPrivilegeLevel.FULL_ACCESS;
var userclient = new Evernote.Client({token: token, sandbox: sandbox});
var notestore = userclient.getNoteStore();
notestore.createSharedNotebook(userclient.token, notebook, function(err, results){
callback(err, results);
});
mit einem Beispiel Antwort wie:
{
allowPreview:null
email:"[email protected]"
id:12345
notebookGuid:"d2fa3cbe-...."
notebookModifiable:false
privilege:4
recipientSettings:null
requireLogin:null
serviceCreated:1469079222000
serviceUpdated:1469079222000
shareKey:"xxxx-sxxx"
userId:999xxxxx
username:null
}
2) Da Evernote keine E-Mail von der API schickt Bitte senden Sie dem Benutzer manuell einen Link, um das freigegebene Notebook zu aktivieren.
-Code LinkedNotebook zu erstellen: (von Gemeinschafts-Benutzerkonto)
var notebook = new Evernote.LinkedNotebook;
notebook.shareName = options.shareName;
notebook.username = options.username;
notebook.shardId = options.shardId;
notebook.shareKey = options.shareKey;
var userclient = new Evernote.Client({token: token, sandbox: sandbox});
var notestore = userclient.getNoteStore();
notestore.createLinkedNotebook(userclient.token, notebook, function(err, results){
callback(err, results);
});
Und das Beispiel Antwort:
{
shareName: 'Notebook Name',
username: '...',
shardId: 'sxxx',
shareKey: 'xxxx-sxxx',
uri: null,
guid: '4f8df3c2-...',
updateSequenceNum: 630,
noteStoreUrl: 'https://www.evernote.com/shard/sxxx/notestore',
webApiUrlPrefix: 'https://www.evernote.com/shard/sxxx/',
stack: null,
businessId: null
}
jemand eine verlinkte Notebook von der API kein Glück gehabt zu schaffen hat? Es scheint, dass der Aufruf der createLinkedNotebook-API nicht korrekt funktioniert. Danke für Ihre Hilfe.
Danke für die Info. Es wäre schön, neben diesen api-Anrufen eine Nachricht zu haben, einfach "3rd party apps können diesen api-Anruf im Moment nicht nutzen". –
Welcher Anruf speziell? _Technisch_ Sie können alle Anrufe verwenden, z. B. können Sie ein LinkedNotebook mit einem beliebigen SharedNotebook erstellen, einschließlich eines SharedNotebooks, das Ihnen bereits zugewiesen ist. Ich stimme zu, dass es nicht sehr nützlich ist, hoffe aber, das bald zu ändern! – akhaku
Ein anderer API-Aufruf, den wir nutzen wollten, war "sendMessageToSharedNotebookMembers", aber auch das scheint begrenzt zu sein oder funktioniert nicht von 3rd Party API. Wie auch immer, ich freue mich darauf, die neuen Funktionen zu testen, wenn die SDKs und Dokumente aktualisiert werden. –