2016-03-19 2 views
5

Я пытаюсь интегрировать средний блог в приложение, показывая несколько карточек с изображениями сообщений и ссылками на оригинальную публикацию Medium.Как получить средние истории для пользователя из API?

Из документов среднего API. Я могу видеть, как извлекать публикации и создавать сообщения, но не упоминает получение сообщений. Является ли получение сообщений/рассказов для пользователя, который в настоящее время возможен с использованием API среды?

+2

пока не представляется возможным. По-видимому, вы можете только перечислить публикации и добавить публикацию в публикацию. (но вы даже не можете изменить сообщение после его создания, а конечная точка POST не возвращает заголовок местоположения с URL-адресом для вновь созданного сообщения.) – njzk2

ответ

13

Этот API является только для записи и не предназначен для получения сообщения (средний персонал сказал мне)

Вы можете просто использовать RSS-канал, как, например:

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

Вы можете просто получить RSS кормить через GET, тогда, если вам это нужно в формате JSON, просто используйте модуль NPM, например rss-to-json, и вам хорошо идти.

+1

Я сделал обертку для микросервиса для пакета rss-to-json, о котором упоминал Антонио, что также облегчает потяните эти данные вниз: https: // clay.запустить/услуги/nicoslepicos/RSS-на-JSON. Если вы хотите параметризовать его, чтобы конечная точка всегда просто отбрасывала какой-то определенный канал, просто разворачивайте эту конечную точку с помощью «глиняной вилки nicoslepicos/rss-to-json», а затем просто помещайте жесткий диск, который вы хотите, чтобы он всегда возвращался. В качестве альтернативы существует еще одна микросервис: https://clay.run/services/nicoslepicos/medium-get-users-posts, которая специально использует медиа-канал Medium. – nicoslepicos

+0

Можно ли получить рассказы на главной странице СМИ с помощью RSS или что-то еще? –

3

С помощью этого метода REST вы бы сделали это: GET https://api.medium.com/v1/users/{{userId}}/publications, и это вернет название, изображение и URL-адрес элемента. Дополнительная информация: https://github.com/Medium/medium-api-docs#32-publications.

Вы также можете добавить «? Format = json» в конец любого URL на Medium и вернуть полезные данные.

+0

сложно, но когда говорят «публикации», это не значит «Посты пользователя». Как говорит Антонио, единственный способ доступа к сообщениям пользователей - через RSS. [См. Этот вопрос] (https://github.com/Medium/medium-api-docs/issues/51) – damko

1

Я создал основную функцию, используя AWS Lambda и AWS API Gateway, если кому-то это интересно. Подробное объяснение можно найти на this blog post here, а репозиторий для функции Lambda, построенный с помощью Node.js, можно найти здесь по адресу Github. Надеюсь, кто-то здесь сочтет это полезным.

+0

Обернуто, что AWS Lambda вы создали в микросервисе Clay. Кроме того, в качестве хэдз-ап пытался отправить вам электронное письмо, чтобы рассказать вам об этом, но похоже, что письмо на вашем сайте отскакивает назад :) – nicoslepicos

4

Проверить это один вы получите всю информацию о вашем собственном посте ........

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

(Обновление JS скрипка и функции Глины, которая объясняет его как мы обновили функцию синтаксис чище)

Я завернул Github пакет @ наценка Фазель упоминал ниже в Clay microservice, который позволяет сделать именно это:

Упрощенная Return Формат: https://www.clay.run/services/nicoslepicos/medium-get-user-posts-new/code

я собрал немного скрипки, так как пользователь спрашивает, как использовать конечную точку в HTML, чтобы получить названия для последних 3 сообщений: https://jsfiddle.net/h405m3ma/3/

Вы можете вызвать API как:

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

Вы также можете использовать его легко в коде узла с помощью пакета НОГО глинисто-клиента и просто написать:

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

}); 

Надеется, что это полезно!