Заголовок поста в Instagram не отображается должным образом - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь получить пост профиля Instagram с подписями, все работает нормально, кроме подписей. Это показывает: [объект объекта]

Я не использовал API.

Мой код:

function nFormatter(num){
    if(num >= 1000000000){
      return (num/1000000000).toFixed(1).replace(/\.0$/,'') + 'G';
    }
    if(num >= 1000000){
      return (num/1000000).toFixed(1).replace(/\.0$/,'') + 'M';
    }
    if(num >= 1000){
      return (num/1000).toFixed(1).replace(/\.0$/,'') + 'K';
    }
    return num;
  }
  $.ajax({
    url:"https://www.instagram.com/bhudiptaakash?__a=1",
    type:'get',
    success:function(response){
      $(".profile-pic").attr('src',response.graphql.user.profile_pic_url);
      posts = response.graphql.user.edge_owner_to_timeline_media.edges;
      posts_html = '';
      for(var i=0;i<posts.length;i++){
        caption = posts[i].node.edge_media_to_caption;
        likes = posts[i].node.edge_liked_by.count;
        posts_html += '<a href="https://instagram.com/p/'+shortcode+'">: '+caption+';
      }
      $(".posts").html(posts_html);
    }
  });

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 11 февраля 2020

Значением свойства edge_media_to_caption является такой объект:

{
    "edges": [{
        "node": {
            "text": "Still alive"
        }
    }]
}

Вам нужно l oop по краям и получить свойства node.text.

for (var i = 0; i < posts.length; i++) {
  let caption = posts[i].node.edge_media_to_caption.edges.map(e => e.node.text).join('<br>');
  let likes = posts[i].node.edge_liked_by.count;
  posts_html += '<a href="https://instagram.com/p/' + shortcode + '">: ' + caption + '</a>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...