2013-08-09 4 views
0

이미지를 업로드하여 사용자의 벽에 게시하는 FB 앱을 만들고 있는데,이 시점에서 멈추었습니다. 내 서버가 너무 작기 때문에 FB 스테이징 서버에 이미지를 업로드하고 싶습니다. 내가 file_uri 이미지에 HTTPS 주소를 포함하는 변수이 코드jssdk를 사용하여 FB 스테이징 서버로 이미지를 업로드하는 중 오류가 발생했습니다.

FB.api('/me/staging_resources?access_token='+access_token, 'post', {file: file_uri}, function(response) { 
     if (!response) { 
     alert('Error occurred.'); 
    } else if (response.error) { 
     console.log('Error: ' + response.error.message); 
    } else { 
     console.log('File uri is ' + response.uri); 
     file_uri = response.uri; 
    } 
    }); 

와 이미지를 게시 할 때, 나는 끊임없이 오류 "(#100) Invalid file. Expected file of one of the following types: image/jpg, image/jpeg, image/gif, image/png"을받을 수 있습니다. Graph API Explorer에서도 동일한 오류를 테스트했습니다. 나는 이미지를 생성하는 파일에 URL을 넣기 위해 모든 것을 시도했다. 이미지, http, https, 다른 사이트의 일부 이미지 ...에 항상 직접 URL을 붙여야한다. 누군가 저에게 도움이 되셨습니까? 사전에

감사합니다, 니콜라

편집 - 사람이 문제로 실행 한 경우가, 솔루션 호출 별도의 컬 파일을 만들기 위해 제이슨을 다시

감사합니다, 나는 이미지를 얻을 성공 입니다

솔루션 이미지 및 액세스 토큰의 URL을 https://graph.facebook.com/me/staging_resources는 다음의 js 파일에하여 documentation에 따르면, 간단한 전화

$.get('/curl.php?url='+image_url+'&access_token='+access_token,function(response){ 
     console.log(response); 
}); 

답변

0

을 파일 매개 변수는 실제로 파일 데이터 여야합니다 (예 : enctype='multipart/form-data' HTTP POST). 예를 들어 그들은 컬를 통해 게시 쇼 :

curl -X POST \ 
    https://graph.facebook.com/me/staging_resources \ 
    -F "[email protected]/prawn-curry-1.jpg" \ 
    -F "access_token=$USER_ACCESS_TOKEN" 

그것은 파일 대답 제이슨에 대한

+0

감사합니다 (당신이 가져 오기를 미리 형성해야한다)로 확인되는 URI를받을 수 없어! 나는 지금 일반적인 원칙을 얻었지만 ... js의 전문가는 아니지만 jssdk로 어떻게 만들 수 있을지 생각해? –

+0

그것은 훨씬 더 까다 롭습니다. [FileData] (http://caniuse.com/fileapi)의 [FormData] (http://caniuse.com/xhr2)라는 HTML5의 새로운 기능을 사용하는 것이 포함됩니다. –

+0

감사합니다. 그 방향을 연구하려고합니다. –

관련 문제