2011-02-24 2 views
2

파이썬 SDK를 사용하여 그림을 업로드하려고합니다.GraphAPIError : (# 324) 업로드 파일 필요

코드 :

graph = facebook.GraphAPI(self.current_user.access_token) 
graph.put_object("me", "photos", name = "test", message = raw_picture_data) 

그러나 "GraphAPIError: (#324) Requires upload file" 오류가 발생합니다. perms = "user_photos, friends_photos, publish_stream"을 요청 했으므로 권한 문제로 생각하지 않습니다. 누구든지이 오류의 의미와 해결 방법을 알고 있습니까?

답변

0

어쩌면 시도해 볼 수 있습니다. http://od-eon.com/blogs/tudor/facebook-photo-upload-google-app-engine/

나는 solved my problem이를 사용하려하지만, 나는이 응답 있어요 -
{ "오류": { "유형": "OAuthException", "메시지": "당신은 사용해야합니다은 https : //를 통과 할 때 http://atlee.ca/software/poster/

이이 facebook.py에 추가 :

from poster.encode import * 
from poster.streaminghttp import register_openers 

def put_photo(self, source, album_id=None, message=""): 
    object_id = album_id or "me" 

    register_openers() 
    content_type,body = multipart_encode([ ('message',message),('access_token',self.access_token),('source',source) ]) 

    req = urllib2.Request("https://graph.facebook.com/%s/photos" % object_id, content_type,body) 

    try: 
     data = urllib2.urlopen(req).read() 
    except urllib2.HTTPError as e: 
     data = e.read() 
    try: 
     response = _parse_json(data) 
     if response.get("error"): 
      raise GraphAPIError(response["error"].get("code", 1),response["error"]["message"]) 
    except ValueError: 
     response = data 

    return response 

전화 A와 사진과 함께 기능 액세스 토큰 "}}

+0

난이 오류가 발생했습니다 - 이 내 코드 (http://pypi.python.org/pypi/poster/0.8.1 포스터)입니다 – Adham

4

나는 이미지를 인코딩하기 위해이 라이브러리를 사용 객체처럼 파일 : API를 추가하는 기능을 제안하지만 이미지를 인코딩하는 포스터를 사용까지 나를 위해 작동하지 않았다으로

graph = facebook.GraphAPI(access_token) 
photo = open("myphoto.bmp","rb") 
graph.put_photo(photo,"me","This is my brilliant photo") 

put_photo 방법은 사람에 의해 제출 된 (나는 누구 잊지).

희망이 도움이됩니다.

0

그냥 비슷한 오류가 발생했습니다. 나는 SDK를 사용하지 않았지만 graphapi에 대한 POST 만 사용했습니다. 나에게이 오류는 페이스 북으로 보내진 "양식"의 파일 업로드 필드에 파일 이름을 제공하지 않을 때 발생했습니다. {{ "유형": "OAuthException", "메시지"} "(# 324) 업로드 파일이 필요합니다", "오류"}

from poster.encode import multipart_encode, MultipartParam 
url = 'https://graph.facebook.com/me/photos?access_token=%s'%model.facebook_token 
file_param = MultipartParam(name = 'source', 
          filename = 'photo.jpg', #this is crucial!!! 
          fileobj = blob_reader) #the blob reader is the fileobject for the file (with read() method) 
message_param = MultipartParam(name = 'message', 
           value = 'test message')         

datagen, headers = multipart_encode([file_param, 
            message_param]) 
from google.appengine.api import urlfetch 
result = urlfetch.fetch(url, 
       payload = ''.join(datagen), 
       headers = headers, 
       method = 'POST')  
return result.content        
관련 문제