2016-03-19 11 views
5

Próbuję zintegrować bloga Medium z aplikacją, pokazując niektóre karty z obrazami postów i linkami do oryginalnej publikacji Medium.Jak pobrać historie średnich użytkowników z interfejsu API?

Ze średnich dokumentów API mogę zobaczyć, jak pobierać publikacje i tworzyć posty, ale nie wspomina się o pobieraniu wpisów. Czy pobieranie wiadomości/artykułów dla użytkownika jest obecnie możliwe za pomocą interfejsu API Medium?

+2

na razie nie wydaje się możliwe. Wygląda na to, że możesz tylko wyświetlać publikacje i dodawać posty do publikacji. (ale nie możesz nawet zmienić postu po jego utworzeniu, a punkt końcowy POST nie zwraca nagłówka Location z adresem URL do nowo utworzonego posta.) – njzk2

Odpowiedz

13

API jest tylko do zapisu i nie jest przeznaczony do pobierania wiadomości (Średni personel powiedział mi)

można po prostu użyć kanału RSS jako takie:

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

można po prostu dostać RSS przesyłaj przez GET, a jeśli potrzebujesz go w formacie JSON, po prostu użyj modułu NPM, takiego jak rss-to-json i możesz już iść.

+1

Zrobiłem opakowanie mikroservice dla pakietu rss-to-json Antonio wspomniał powyżej, co również ułatwia Wyciągnij te dane: https: // clay.run/services/nicoslepicos/rss-to-json. Jeśli chciałbyś sparametryzować go tak, aby punkt końcowy zawsze tylko pobierał jakiś konkretny plik danych, po prostu rozwiąż ten punkt końcowy za pomocą 'clay fork nicoslepicos/rss-to-json', a następnie po prostu umieść w napędzie na stałe, którego chcesz, aby zawsze zwracał. Alternatywnie, jest jeszcze inny mikroserwis: https://clay.run/services/nicoslepicos/medium-get-users-posts, który używa specjalnie średniego kanału RSS. – nicoslepicos

+0

Czy można uzyskać historie z pierwszej strony medium za pomocą RSS lub coś podobnego? –

3

Dzięki tej metodzie REST można to zrobić: GET https://api.medium.com/v1/users/{{userId}}/publications, co spowoduje zwrócenie tytułu, obrazu i adresu URL elementu. Dalsze szczegóły: https://github.com/Medium/medium-api-docs#32-publications.

Możesz także dodać "? Format = json" na końcu dowolnego adresu URL na Medium i odzyskać przydatne dane.

+0

To jest trudne, ale kiedy mówią "publikacje", nie mają na myśli "posty użytkownika". Jak twierdzi Antonio, jedynym sposobem na dostęp do postów użytkownika jest RSS. [Zobacz ten problem] (https://github.com/Medium/medium-api-docs/issues/51) – damko

1

Zbudowałem podstawową funkcję za pomocą AWS Lambda i AWS API Gateway, jeśli ktoś jest zainteresowany. Szczegółowe wyjaśnienie znajduje się pod adresem this blog post here, a repozytorium funkcji Lambda zbudowanej za pomocą Node.js znajduje się tutaj pod adresem Github. Mam nadzieję, że ktoś tutaj uzna to za przydatne.

+0

Zawijam, że AWS Lambda stworzyłeś w mikroserwisie Clay. Ponadto, jako heads up próbował wysłać Ci e-mail, aby powiedzieć Ci o tym, ale wygląda na to, że wiadomość e-mail na Twojej stronie odskakuje z powrotem :) – nicoslepicos

4

Sprawdź ten będzie uzyskać wszystkie informacje o swoim stanowisku ........

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

(Aktualizacja JS skrzypce i funkcję Clay, który wyjaśnia ją jako zaktualizowaliśmy funkcja składni być czystsze)

I owinął Github pakiet @ mark-fasel było wspomnieć poniżej w Clay microservice który pozwala zrobić dokładnie to:

uproszczonej formie Powrót: https://www.clay.run/services/nicoslepicos/medium-get-user-posts-new/code

ułożyła trochę skrzypce, ponieważ użytkownik był pytaniem, jak używać punktu końcowego w HTML, aby uzyskać tytuły ostatnich 3 stanowisk: https://jsfiddle.net/h405m3ma/3/

Można zadzwonić API jak:

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

można również użyć go łatwo w kodzie węzłów przy użyciu pakietu npm gliny klienta i po prostu napisać:

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); 

}); 

nadzieję, że to pomocne!

Powiązane problemy