2015-05-04 23 views
6

Piszę aplikację, która musi uzyskać liczbę polubień dla postu Tumblr w PHP. Używam Tumblr PHP library i pomyślnie uwierzytelniłem i wszystko to. Używam Client::getBlogPosts(), aby uzyskać listę postów. Zwraca co jest zasadniczo tablica PHP z informacji, takich jak:Tumblr API: Czy istnieje sposób na uzyskanie liczby polubień, jakie otrzymuje post Tumblr?

{ 
    "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 
     } 
    ] 
    } 

Najbliżej pole do czego szukam jest note_count, chociaż ten agreguje zarówno sympatie i reblogs. Jeśli note_count ma wartość 0, nie ma problemu, ale gdy liczba notatek wynosi 41, nie mogę stwierdzić, czy była ona podobna 40 razy i raz lub odwrotnie. Tak czy inaczej, obecność lub brak pola liked już ci to mówi.

Próbowałem użyć metody Client::getBlogLikes(), ale to pobiera listę postów, które blog lubi (w języku Tumblr, skutecznie posty, które lubił), co jest przeciwieństwem tego, czego szukam.

Najlepszym mogę dostać od ogólnej internecie jest to article, co sugeruje, używając URL api.tumblr.com/v2/blog/{base-hostname}/likes?api_key={key}, ale jako o ile mogę powiedzieć z kodu, jest to to samo, co użycie funkcji Client::getBlogLikes() z biblioteki Tumblr PHP.

Czy ktoś wie, jak uzyskać liczbę polubień danego postu? Nie musi to być rozwiązanie specyficzne dla PHP.

+1

Niestety to nie jest możliwe. 'note_count' to kombinacja polubień i reblogów: http://tumblr.com/docs/en/api/v2#posts – mikedidthis

+0

Możliwy duplikat: http://stackoverflow.com/questions/29820031/how-to-get- individual-tumblr-posts-likes-count-for-tumblr-client-gem – mikedidthis

Odpowiedz

1

Jeśli ktoś nadal szuka tego 2 lata po pierwotnym wpisie ... możesz to zrobić, dodając &notes_info=true do api api - kolekcja obiektów zostanie zwrócona. Jeśli przejdziesz przez to, możesz liczyć typy postów. Z tego co widzę typy wiadomości to: posted (oryginalny post), like i reblog. Mam nadzieję że to pomoże!

Przykład zauważa kolekcji z json odpowiedzi: (pokazując tylko 1 notatka)

'notes': [{'avatar_shape': 'square', 
      'blog_name': 'xxx', 
      'blog_url': 'xxx', 
      'blog_uuid': 'xxx', 
      'followed': False, 
      'timestamp': 1505922448, 
      'type': 'like'}], 
1

Wydaje się, że dla Tumblr API v2 docs, że nie, nie jest to możliwe. Możesz uzyskać tylko liczbę wszystkich polubień na blogu lub postów, które lubią.

Powiązane problemy