2015-05-04 20 views
6

Sto scrivendo un'applicazione che deve ottenere il numero di Mi piace per un post di Tumblr in PHP. Sto usando il Tumblr PHP library e ho autenticato con successo e tutto il resto. Io uso Client::getBlogPosts() per ottenere un elenco dei post. Esso restituisce ciò che è essenzialmente un array PHP con informazioni come:Tumblr: c'è un modo per ottenere il numero di Mi piace che riceve un post di 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 
     } 
    ] 
    } 

Il campo più vicino a quello che sto cercando è note_count, anche se questo aggrega sia simpatie e reblogs. Se lo note_count è 0, non ci sono problemi, ma quando il conteggio delle note è 41, non riesco a capire se è stato gradito 40 volte e ha aggiunto una volta o il contrario. In entrambi i casi, la presenza o l'assenza del campo liked ti dice già questo.

Ho provato a utilizzare il metodo Client::getBlogLikes() ma recupera un elenco di post che il blog ha gradito (in gergo su Tumblr, in effetti post che l'utente creava piaciuto), che è il contrario di ciò che sto cercando.

Il meglio che ho potuto ottenere da internet in generale è questo article, che suggerisce di utilizzare l'URL api.tumblr.com/v2/blog/{base-hostname}/likes?api_key={key}, ma come Per quanto posso dire dal codice, questo è lo stesso che usare la funzione Client::getBlogLikes() dalla libreria PHP di Tumblr.

Qualcuno conosce un modo per ottenere il numero di Mi piace che un particolare post ha ricevuto? Non ha bisogno di essere una soluzione specifica per PHP.

+1

Purtroppo non la sua possibile. 'note_count' è una combinazione di Mi piace e reblog: http://tumblr.com/docs/en/api/v2#posts – mikedidthis

+0

Eventuale duplicato: http://stackoverflow.com/questions/29820031/how-to-get- singole-tumblr-post-likes-contare-per-tumblr-client-gioiello – mikedidthis

risposta

1

Nel caso in cui qualcuno sia ancora alla ricerca di questo 2 anni dopo il post originale ... è possibile farlo aggiungendo &notes_info=true alla chiamata api: verrà restituita una raccolta di oggetti notes. Se si scorre su questi è possibile contare i tipi di post. Da quello che posso vedere i tipi di post sono: posted (il post originale), like e reblog. Spero che questo ti aiuti!

Esempio raccolta di note da json risposta: (mostrando solo 1 nota)

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

Sembra che per Tumblr API v2 docs, che no, non è possibile. Puoi solo ottenere un conteggio dei Mi piace totali del blog o dei post che piacciono alle persone.

Problemi correlati