簡體   English   中英

Python-如何使用Django獲取Facebook用戶的好友列表,狀態更新等?

[英]Python- How do I get a Facebook users friend list, status updates, etc. using Django?

在他們接受所有權限后,如何從facebook用戶取回數據時遇到了麻煩。 現在,我只是想讓我的Django應用登錄(完成),並將他們的朋友列表打印到網頁上,以確保其正常運行。 我嘗試了這些網頁上發布的方法-

http://axiacore.com/blog/how-retrieve-facebook-extra-info-from-django/

如何使用Python-Social-auth和Django檢索Facebook朋友的信息

這是我到目前為止擁有的代碼-

from django.shortcuts import render_to_response, render
from django.template.context import RequestContext
import urllib2
from urllib2 import urlopen
import json

def friendlist(request):
    social_user = request.user.social_auth.filter(
                                                    provider='facebook',
                                                ).first()    
    goodies = []
    if social_user:
        #print social_user
        url = u'https://graph.facebook.com/{0}/' \
              u'friends?fields=id,name,location,picture' \
              u'&access_token={1}'.format(
                  social_user.uid,
                  social_user.extra_data['access_token'],
              )
    request = urllib2.Request(url)
    friends = json.loads(urllib2.urlopen(request).read()).get('data')
    for friend in friends:
        goodies.append(friend.get('name'))
    return render_to_response('thirdauth/friendlist.html', {'friends': goodies})


def home(request):
    context = RequestContext(request,
                       {'request': request,
                        'user': request.user})
    #print request.user
    return render_to_response('thirdauth/home.html',
                         context_instance=context)

然后,當我打印出好東西時,它根本沒有數據。 我只是想知道我在做什么錯。

我的settings.py文件可能不需要篡改,但這就是我所做的。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'social.apps.django_app.default',
    'thirdauth',
)

TEMPLATE_CONTEXT_PROCESSORS = (
   'django.contrib.auth.context_processors.auth',
   'django.core.context_processors.debug',
   'django.core.context_processors.i18n',
   'django.core.context_processors.media',
   'django.core.context_processors.static',
   'django.core.context_processors.tz',
   'django.contrib.messages.context_processors.messages',
   'social.apps.django_app.context_processors.backends',
   'social.apps.django_app.context_processors.login_redirect',
)

AUTHENTICATION_BACKENDS = (
   'social.backends.facebook.FacebookOAuth2',
   'social.backends.google.GoogleOAuth2',
   'social.backends.twitter.TwitterOAuth',
   'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_FACEBOOK_KEY = '1*************'
SOCIAL_AUTH_FACEBOOK_SECRET = '43************************'

FACEBOOK_EXTENDED_PERMISSIONS = ['email']

SOCIAL_AUTH_FACEBOOK_SCOPE = [
    'publish_actions',
    'email',
    'user_friends',
    'user_birthday',
    'public_profile',
    'user_about_me',
    'user_likes',
    'user_location',
    'user_photos',
    'user_posts',
    'user_relationships',
    'user_status',
    'user_tagged_places',
    'user_work_history',
]

urls.py看起來像這樣-

from django.conf.urls import patterns, include, url
from django.contrib import admin

from thirdauth import views

admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'thirdauth.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'thirdauth.views.home', name='home'),
    url('', include('social.apps.django_app.urls', namespace='social')),
    url('', include('django.contrib.auth.urls', namespace='auth')),
    url('^friends/', views.friendlist, name="friendlist"),
)

非常感謝你的幫助!

Facebook更改了其API(現在僅支持v2,不再支持v1),因此您將無法再通過該API獲取朋友列表。 您唯一可以做的就是獲取使用您的應用程序的用戶列表。 要測試此功能是否正常,請確保兩個用戶都已添加了該應用程序。

如果您仍然需要獲取用戶列表,則可以按照此鏈接上的說明通過導出到Yahoo來做到這一點: http : //iag.me/socialmedia/how-to-transfer-your-facebook-friends-to- Twitter的和其他的網絡-一個更新/

我無法正常工作,但發現了這一點:

http://www.techgainer.com/import-facebook-contacts-gmail-google-contacts/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM