如果我會嘗試這個URL傳遞到Open Graph的Facebook Open Graph - 如何在URL中傳遞參數?
$url = 'http://abc.com/index.php';
$facebook->api('/me/url_app:action','POST', array('something'=>$url));
一切運作良好。 但是,如果我嘗試添加一些參數,如
$url = 'http://abc.com/index.php?a=b&c=d';
$facebook->api('/me/url_app:action','POST', array('something'=>$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
爲什麼我不能添加一些參數的URL地址?
編輯另外,這裏是編碼環節的PHP函數:
function encodeURIComponent($str) {
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')', '%3D'=>'=', '%3F'=>'?');
return strtr(rawurlencode($str), $revert);
}
您不必編碼任何東西的時候只給一個網址作爲參數傳遞給API方法。你有沒有試過通過調試工具運行你的URL--它說什麼? https://developers.facebook.com/tools/debug – CBroe
@Cbroe是對的,調試工具是你最好的朋友。在這種情況下,該網址的元標記似乎已破壞爲og:url。另外,爲什麼你這樣編碼?如果必須建議使用http://php.net/manual/en/function.urlencode.php(您不必在這種情況下,SDK應該爲您做)。 – Claudiu