Я пишу приложение, которое должно получить количество лайков для поста Tumblr в PHP. Я использую PHP-библиотека Tumblr и успешно прошли проверку подлинности и все такое. я использую Client::getBlogPosts()
чтобы получить список сообщений. Он возвращает массив PHP с такой информацией, как:
{
"blog_name": "jeteon",
"id": 92729317211,
"post_url": "http://jeteon.tumblr.com/post/92729317211/where-to-find-libxm-so-2-for-ubuntu",
"slug": "where-to-find-libxm-so-2-for-ubuntu",
"type": "link",
"date": "2014-07-24 13:43:04 GMT",
"timestamp": 1406209384,
"state": "published",
"format": "html",
"reblog_key": "oA2WcGac",
"tags": [
"dakota",
"ubuntu"],
"short_url": "http://tmblr.co/Z9ROeu1MN6HTR",
"highlighted": [],
"note_count": 0,
"title": "Where to find libXm.so.2 for Ubuntu",
"url": "https://packages.debian.org/wheezy/lesstif2",
"author": null,
"excerpt": null,
"publisher": "packages.debian.org",
"description": "<p>I recently had to install Dakota (<a href=\"http://dakota.sandia.gov\">http://dakota.sandia.gov</a>) and after considerable trouble with prerequisites, found that the binary install on Ubuntu requires (amonst other umentioned libraries) a shared library called libXm.so.2. The library is in a package called lesstif2 which is no longer available, it seems. You can grab the DEB on the above link though.</p>",
"reblog": {
"tree_html": ""},
"trail": [
{
"blog": {
"name": "jeteon",
"theme": {
"avatar_shape": "square",
"background_color": "#FAFAFA",
"body_font": "Helvetica Neue",
"header_bounds": "",
"header_image": "http://assets.tumblr.com/images/default_header/optica_pattern_10.png?_v=eafbfb1726b334d86841955ae7b9221c",
"header_image_focused": "http://assets.tumblr.com/images/default_header/optica_pattern_10_focused_v3.png?_v=eafbfb1726b334d86841955ae7b9221c",
"header_image_scaled": "http://assets.tumblr.com/images/default_header/optica_pattern_10_focused_v3.png?_v=eafbfb1726b334d86841955ae7b9221c",
"header_stretch": true,
"link_color": "#529ECC",
"show_avatar": true,
"show_description": true,
"show_header_image": true,
"show_title": true,
"title_color": "#444444",
"title_font": "Gibson",
"title_font_weight": "bold"}
},
"post": {
"id": "92729317211"},
"content": "<p>I recently had to install Dakota (<a href=\"http://dakota.sandia.gov\">http://dakota.sandia.gov</a>) and after considerable trouble with prerequisites, found that the binary install on Ubuntu requires (amonst other umentioned libraries) a shared library called libXm.so.2. The library is in a package called lesstif2 which is no longer available, it seems. You can grab the DEB on the above link though.</p>",
"is_root_item": true,
"is_current_item": true
}
]
}
Ближайшее поле к тому, что я ищу, это note_count
, хотя это объединяет как лайки, так и реблоги. Если note_count
0, то проблем нет, но когда количество заметок равно 41, я не могу сказать, понравились ли они 40 раз и сделали одну перезагрузку или наоборот. В любом случае, наличие или отсутствие liked
поле уже говорит вам об этом.
Я пытался использовать Client::getBlogLikes()
метод, который извлекает список публикаций, которые понравились блогу (на языке Tumblr, эффективно публикует записи, которые понравились создателю), что является противоположностью того, что я ищу.
Лучшее, что я мог получить из общего интернета, это статья, который предлагает использовать URL api.tumblr.com/v2/blog/{base-hostname}/likes?api_key={key}, но, насколько я могу судить по коду, это то же самое, что и использование Client::getBlogLikes()
функция из библиотеки Tumblr PHP.
Кто-нибудь знает способ получить количество лайков, которые получил конкретный пост? Это не должно быть специфичным для PHP решением.
В случае, если кто-то еще ищет это через 2 года после оригинального сообщения … вы можете сделать это, добавив ¬es_info=true
на ваш вызов API — коллекция notes
объекты будут возвращены. Если вы перебираете их, вы можете сосчитать типы постов. Из того, что я вижу, типы сообщений: posted
(оригинальный пост), like
, а также reblog
, Надеюсь это поможет!
Пример коллекции заметок от json
ответ: (показывает только 1 примечание)
'notes': [{'avatar_shape': 'square',
'blog_name': 'xxx',
'blog_url': 'xxx',
'blog_uuid': 'xxx',
'followed': False,
'timestamp': 1505922448,
'type': 'like'}],
Похоже на Документы Tumblr API v2, что нет, это невозможно. Вы можете получить только общее количество лайков блога или постов, которые понравились людям.