0

내가Facebook Open Graph - URL에 매개 변수를 전달하는 방법?

$url = 'http://abc.com/index.php'; 
$facebook->api('/me/url_app:action','POST', array('something'=>$url)); 

모든 것이 잘 작동 오픈 그래프에이 URL을 전달하는 시도됩니다. 하지만

$url = 'http://abc.com/index.php?a=b&c=d'; 
$facebook->api('/me/url_app:action','POST', array('something'=>$url)); 

과 같은 몇 가지 매개 변수를 추가하려고하면 그때 내가 URL 주소로 몇 가지 매개 변수를 추가 할 수 없습니다 왜이 오류

Fatal error: Uncaught Exception: Object at URL 'http://abc.com/index.php?a=b&c=d' of type 'url_app:action' is invalid because the given value '' for property 'og:url' could not be parsed as type 'url'. thrown in _PATH_/base_facebook.php on line 1050 

을받을 수 있습니까?

function encodeURIComponent($str) { 
    $revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')', '%3D'=>'=', '%3F'=>'?'); 
    return strtr(rawurlencode($str), $revert); 
} 
+1

당신은 방금 API 메서드에 매개 변수로 URL을 제공 할 때 무엇을 인코딩 할 필요가 없습니다. 디버그 도구를 통해 URL을 실행 해 보았습니다 - 무슨 내용입니까? https://developers.facebook.com/tools/debug – CBroe

+0

@Cbroe가 맞습니다. 디버그 도구가 가장 친한 친구입니다. 이 경우 해당 URL의 메타 태그가 og : url에 대해 손상된 것으로 보입니다. 또한, 왜 그렇게 인코딩합니까? http://php.net/manual/en/function.urlencode.php를 사용하여 제안하십시오. (이 경우 SDK가 필요하지 않습니다.) – Claudiu

답변

0

당신은 당신의 URL을를 urlencode 있습니다

편집 또한, 여기 인코딩 링크에 대한 PHP 함수이다.

이이 문제를 해결할 수 있습니다

$url = encodeURIComponent('http://abc.com/index.php?a=b&c=d');
$facebook->api('/me/url_app:action','POST', array('something'=>$url));

...

+0

이 함수를 사용하려고했지만 비슷한 오류 메시지가 표시됩니다. '치명적인 오류 : 알려지지 않은 OAuthException : (# 3503) "http % 3A % 2F % 2Fabc.com % 2Findex.php % 3Fa % 3Db"is is "참조"유형이 포함 된 "신발"속성의 값이 올바르지 않습니다. ' – user984621

+1

_ "urlencode url에"_ - 아니, 그렇지 않습니다. 이 문맥에서는 그렇지 않다. – CBroe