python Instagram api user_recent_media returns None

python instagram api user_recent_media returns None

看着 documentation

api.user_recent_media(userid='1034466',count=1)

returns

([], None)

怎么办?

p.s。顺便说一句,从 http://jelled.com/instagram/lookup-user-id

获取用户 ID

尝试 user_id='1034466' 而不是 userid='1034466'

基本上你应该user_id而不是userid

不过,我可能会帮助您更深入地了解您正在尝试做的事情,因为几周前我做过同样的事情(从用户那里检索 instagram 媒体):

定义:

class InstagramFeed:
    api = InstagramAPI(client_id=settings.SOCIAL_AUTH_INSTAGRAM_KEY,
                       client_secret=settings.SOCIAL_AUTH_INSTAGRAM_SECRET)
    logger = logging.getLogger(__name__)

    def get_user_id(self, user_name):
        users = self.api.user_search(q=user_name)
        for user in users:
            if user_name == user.username:
                return user.id
            else:
                self.logger.error('Instagram User with username {0} NOT FOUND!', user_name)
                raise Exception('Instagram User with username {0} NOT FOUND!', user_name)

    @classmethod
    def get_media(cls, user_name, count=8):
        user_id = cls.get_user_id(cls, user_name)
        if user_id is None:
            return None

        recent_media, next_ = cls.api.user_recent_media(user_id=user_id, count=count)
        return recent_media


class InstagramEncoder(json.JSONEncoder):
    def default(self, o):
        if type(o) in (instagram.models.Comment, instagram.models.Image,
                       instagram.models.Location, instagram.models.Media,
                       instagram.models.MediaShortcode, instagram.models.Point,
                       instagram.models.Relationship, instagram.models.Tag,
                       instagram.models.User, instagram.models.Video, instagram.models.UserInPhoto,
                       instagram.models.Position):
            return o.__dict__
        elif isinstance(o, datetime.datetime):
            unix_time = time.mktime(o.timetuple())
            return str(unix_time)
        else:
            return default(o)

用法:

media = InstagramFeed.get_media(user_name=user_name, count=8)

导入(我在 django1.8 项目中使用它):

from instagram.client import InstagramAPI
from django.conf import settings
from bson.json_util import default

import json
import logging
import instagram.models
import time
import datetime