python Instagram api user_recent_media returns None
python instagram api user_recent_media returns None
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
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