2011-04-26 114 views
0

我的問題是,當我嘗試從用戶連接到我的應用程序獲取pic_square和pic_big,我得到一個空數組。這是代碼:Facebook的PHP SDK查詢返回一個空的陣列

$facebook = new Facebook(array(
     'appId' => FBAPPID, 
     'secret' => FBSECRETNUMBER, 
     'cookie' => true,)); 

$user_info = $facebook->api(array(
     'method'  => 'fql.query', 
     'query'  => "SELECT pic_square, pic_big FROM user WHERE uid = me()", 
     'callback' => '' 
    )); 

在登錄過程中我運行相同的代碼和它的作品,但後來當我試圖實現的功能進行同步與FB PIC我沒有錯誤,沒有數據的用戶的圖片。 任何想法是什麼問題?

非常感謝。

回答

1

我的猜測是,稍後facebook會話不存在,因此您沒有訪問令牌來調用FQL查詢。

無論如何,你爲什麼使用FQL來獲取這些圖片?你總是可以讓他們像這樣:

http://graph.facebook.com/me/picture?type=largehttp://graph.facebook.com/me/picture?type=square

或者您可以使用用戶ID來獲得永久鏈接到圖片:

http://graph.facebook.com/USER_ID_HERE/picture?type=square

好運

+0

是,我認爲會話有問題,是否有可能恢復令牌?是的,你是對的,我應該得到你所說的照片,但是,我有幾個問題:1.-使用/我/鏈接我得到下一個錯誤: 「錯誤」:{ 「type」:「 OAuthException「, 」message「:」必須使用活動訪問令牌來查詢有關當前用戶的信息。「 } 2.-如果我使用的用戶ID它的作品,但我需要保存圖片,並與該鏈接我被重定向到另一個URL,這是我需要保存該文件的URL,我怎麼能得到該URL (PHP)?非常感謝你的幫助。 – Datenshi 2011-04-27 01:31:43

+0

我認爲這是與Facebook服務器上的用戶圖片存儲在服務器上。一般來說,尊重它是個好主意,或者不要公然濫用它。爲什麼你甚至需要存儲它,爲什麼不把它用作這樣的永久鏈接呢?。如果你這樣做,每當用戶更新他的個人資料圖片,這也會改變。無論如何,這裏是你如何下載圖片:file_put_contents('test.jpg',file_get_contents('http://graph.facebook.com/USER_ID/picture'));或者你可以使用CURL。祝你好運 – DannyKK 2011-04-27 14:00:53

+0

謝謝,現在一切正常,順便說一句,我不保存圖像存儲,只是當應用程序運行時,但我需要這樣做。 – Datenshi 2011-04-29 03:47:25