2016-03-19 7 views
5

Ich versuche Medium Blogging in eine App zu integrieren, indem ich einige Karten mit Posts Bildern und Links zu der Original Medium Veröffentlichung zeige.Wie Abrufen von Medium-Storys für einen Benutzer von der API?

Von mittleren API-Dokumenten kann ich sehen, wie Sie Publikationen abrufen und Posts erstellen, aber nicht das Abrufen von Posts. Ist das Abrufen von Posts/Storys für einen Benutzer derzeit mit der API des Mediums möglich?

+2

scheint jetzt nicht möglich. Anscheinend können Sie nur Publikationen auflisten und einen Beitrag zu einer Publikation hinzufügen. (Sie können jedoch nicht einmal einen Post ändern, nachdem Sie ihn erstellt haben, und der POST-Endpunkt gibt keinen Location-Header mit der URL an den neu erstellten Post zurück.) – njzk2

Antwort

13

Die API ist schreibgeschützt und ist nicht für Beiträge (Medium Personal sagte mir) abrufen

Sie einfach den RSS-Feed als solche verwendet werden können:

https://medium.com/feed/@your_profile 

Sie können einfach erhalten die RSS Feed über GET, dann, wenn Sie es im JSON-Format benötigen, verwenden Sie einfach ein NPM-Modul wie rss-to-json und Sie sind gut zu gehen.

+1

Ich habe einen Microservice-Wrapper für das rss-to-json-Paket gemacht, von Antonio oben erwähnt, das macht es auch einfach ziehe diese Daten herunter: https: // clay.run/services/nicoslepicos/rss-zu-json. Wenn Sie es so parametrisieren möchten, dass der Endpunkt immer nur einen bestimmten Feed herunterzieht, geben Sie diesen Endpunkt einfach mit 'clay fork nicoslepicos/rss-to-json' aus und geben Sie dann einfach den fest codierten Feed ein, den Sie immer zurückgeben möchten. Alternativ gibt es diesen anderen Microservice: https://clay.run/services/nicoslepicos/medium-get-users-posts, die speziell den Medium RSS-Feed verwendet. – nicoslepicos

+0

Ist es möglich, Titelseiten Stories mit RSS oder so etwas zu erhalten? –

3

Mit dieser REST-Methode würden Sie dies tun: GET https://api.medium.com/v1/users/{{userId}}/publications und dies würde den Titel, das Bild und die URL des Artikels zurückgeben. Weitere Details: https://github.com/Medium/medium-api-docs#32-publications.

Sie können auch "? Format = json" am Ende jeder URL auf Medium hinzufügen und nützliche Daten zurück erhalten.

+0

es ist schwierig, aber wenn sie "Publikationen" sagen, meinen sie nicht "Benutzer Beiträge". Wie Antonio sagt, ist die einzige Möglichkeit, auf Posts von Benutzern zuzugreifen, RSS. [Siehe diese Ausgabe] (https://github.com/Medium/medium-api-docs/issues/51) – damko

1

Ich habe eine grundlegende Funktion mit AWS Lambda und AWS API Gateway gebaut, wenn jemand interessiert ist. Eine detaillierte Erklärung finden Sie unter this blog post here und das Repository für die mit Node.js erstellte Lambda-Funktion finden Sie hier unter Github. Hoffentlich findet es jemand hier nützlich.

+0

Wrapped, dass AWS Lambda Sie in einen Clay-Microservice erstellt haben. Auch, als ein Heads-Up versucht hat, dir eine E-Mail zu schicken, die dir davon erzählt, sieht aber so aus, als ob die E-Mail auf deiner Seite zurückspringt :) – nicoslepicos

4

überprüfen Sie dieses Sie alle Informationen über Ihren eigenen Beitrag bekommen ........

mediumController.getBlogs = (req, res) => { 
    parser('https://medium.com/feed/@profileName', function (err, rss) { 
     if (err) { 
      console.log(err); 
     } 

     var stories = []; 

     for (var i = rss.length - 1; i >= 0; i--) { 

      var new_story = {}; 

      new_story.title = rss[i].title; 
      new_story.description = rss[i].description; 
      new_story.date = rss[i].date; 
      new_story.link = rss[i].link; 
      new_story.author = rss[i].author; 
      new_story.comments = rss[i].comments; 

      stories.push(new_story); 
     } 
     console.log('stories:'); 
     console.dir(stories); 
     res.json(200, { 
      Data: stories 
     }) 
    }); 

} 
1

(Aktualisieren des JS Fiddle und die Ton-Funktion, die es, wie wir die Funktion Syntax aktualisiert erklärt sauberer sein)

ich das Github Paket @ mark-fasel gewickelt wurde unten in einen Ton Micro zu erwähnen, dass Sie genau dies zu tun ermöglicht:

Vereinfachte Return Format: https://www.clay.run/services/nicoslepicos/medium-get-user-posts-new/code

Ich habe eine kleine Geige, da ein Benutzer wurde gefragt, wie der Endpunkt in HTML verwenden, um die Titel für die letzten 3 Beiträge zu erhalten:

curl -i -H "Content-Type: application/json" -X POST -d '{"username":"nicolaerusan"}' https://clay.run/services/nicoslepicos/medium-get-users-posts-simple 
: https://jsfiddle.net/h405m3ma/3/

Sie die API als aufrufen

Sie können auch in Ihrem Knoten Code mit dem Ton-Client npm Paket verwenden leicht und einfach schreiben:

Clay.run('nicoslepicos/medium-get-user-posts-new', {"profile":"profileValue"}) 
.then((result) => { 

    // Do what you want with returned result 
    console.log(result); 

}) 
.catch((error) => { 

    console.log(error); 

}); 

Hoffnung, dass nützlich ist!