2012-02-04 3 views
0

저는 Facebook API를 처음 접했고 현재는 Facebook PHP SDK를 사용하고 있습니다. 그래서 내 벽 (/ me/links /)에있는 페이스 북 (예 : http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1)에서 특정 사진을 자동으로 공유하고 싶습니다. 그래서 POST 요청에서 "source"와 "link"매개 변수를 보내고 둘 다 동일한 URL (이미지 URL)을 참조합니다. 하지만 OAuthException "(# 1500) 당신이 제공 한 URL이 유효하지 않습니다."Facebook API를 사용하여 사진을 공유 할 수 없습니다.

"publish_stream"및 "share_item"권한을 모두 허용했지만 가장 이상한 점은 내 코드에 문제가없는 것 같지만 앱 설정이 어쨌든 동일한 오류가 발생하기 때문입니다 그래프 API 탐색기를 사용하면 동일한 권한을 가진 액세스 토큰을 생성합니다.

무엇이 여기에 있습니까?

이제 그래프 API 탐색기가 정상적으로 작동하고 있습니다. 방금 또 다른 토큰을 생성했으며 정상적으로 작동했습니다. 코드에 문제가있을 수 있으므로 다음과 같이 처리합니다.

$share = $facebook->api('/me/links', 'POST', array(
          'source' => urlencode($temp_test), 
          'link' => urlencode($temp_test), 
          )); 

잘못된 것이 있습니까?

답변

1

facebook에서 호스팅되는 이미지를 공유 할 수 없습니다. PHP copy() 함수를 사용하여 서버에서 해당 이미지를 먼저 복사 한 다음 패스하여 서버의 이미지 URL을 전달하십시오.

i.e copy("http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1", "/folder location on your server/image.jpg"); 

$share = $facebook->api('/me/links', 'POST', array(
          'source' => "http://yourserver.com".$folder_path.$image, 
          'link' => urlencode($temp_test), 
          )); 
+0

"원본"을 삭제하고 "링크"만 사용하면 어떨까요? 이미지를 내 서버에 복사해야합니까? –

+0

그리고 조금 끈기가 있습니다.하지만 그래프 API 탐색기에서 이미지를 공유 할 수 있습니까? (예 : 페이스 북 그림에 매개 변수 "링크"전달)하지만 앱에서 할 수 없습니까? –

+0

이미지에 대한 링크가 있지만 사용자가 해당 이미지에 개인 정보를 설정 한 경우 앱에서 해당 이미지를 게시하는 방법은 어떻게 생각하세요? –

1

이미 페이스 북의 앨범에있는 이미지를 가지고 있으며 타임 라인 또는 친구의에 이미지를 공유하려는 경우, 당신은 object_attachment 태그를 사용할 수 있습니다. Obj-C에서 수행하는 방법입니다.

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            //         @"http://www.bitsonthego.com", @"link", 
            {image id of your image goes here}, @"object_attachment", 
            @"my profile", @"name", 
            @"description", @"description", 
            @"name of the post", @"name", 
            @"caption of my post", @"caption", 
            @"a message", @"message", 
            nil]; 

    [facebook requestWithGraphPath:@"/me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

이미지의 다른 사본을 만들거나 로컬로 호스트 할 필요가 없습니다.

관련 문제