2012-04-08 78 views
1

如果您使用Facebook圖形API,則可以查看某人的所有公開信息,如果該人員將這些信息公開設置,則只需執行幾項操作:打開瀏覽器,登錄到Facebook,並知道該用戶的用戶ID#,例如,馬克扎克伯格 - Facebook的創始人有用戶ID#4,所以去: https://graph.facebook.com/4 =>你可以看到基本的信息,如姓名,年齡,位置....(想象一下你改變我在_ https://graph.facebook.com/i與我從1到100萬,你可能會看到百萬用戶的信息,只要他們公開設置他們的信息)如何使用java獲取永久Facebook訪問令牌

或去到這個鏈接,你可以看到更多的信息,如人的最愛和教育...... 個_HTTPS://graph.facebook.com/4 =的access_token XXX XXX 一個唯一的代碼,它您登錄到Facebook(看多http://developers.facebook.com/docs/reference/api/

我的目標是每一次變化使用基本的Java URL去這些鏈接,並獲得所有信息(基本上他們是文本),並將其保存到文本文件,與_https://graph.facebook.com/4沒有問題,但與第二個鏈接問題是訪問令牌代碼是XXX - 每次更改或在20〜30分鐘後過期,因此我無法再運行我的程序以獲取更多數據。 問題是有無論如何得到一個永久訪問令牌或延長它的時間更長,記住我只使用一個小的Java程序,與Facebook應用程序或任何其他事情無關。先謝謝了!

回答

1

不幸的是,您無法獲得永久性訪問令牌,相反,您可以在訪問令牌過期並請求新令牌時捕獲錯誤。你也可能想閱讀Facebook的使用條款,以確保你沒有違反它。

+0

沒問題,所以沒辦法獲得永久代碼,得到了你,那就是我的想法。你有任何想法或有用的鏈接,請問在每次發現錯誤時如何請求新的訪問令牌?我試圖搜索的這些鏈接看起來就像Facebook應用程序開發的那樣,這不適用於我的情況。我試圖收集的這個數據集僅用於統計目的,沒有個人信息被公開或用於商業目的,例如:我告訴你我們有30%25歲以下的美國人,學習信息系統是女性......和類似的東西。 – 2012-04-08 23:43:33

+0

對不起,我沒有。我認爲你只能這樣做,如果你正在使用Facebook應用程序。 (可能有一個我沒有意識到的解決方法)。 – 2012-04-10 19:08:58

0

不能獲得永久訪問令牌,但在到期後續訂相當容易:That文章是要走的路。神奇的網址是:

https://www.facebook.com/dialog/oauth/?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URL&state=YOUR_STATE_VALUE&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES 
  • client_id
    您的應用程序的ID。你需要必須註冊一個Facebook應用程序,即使你正與Java或類似的「離線」工作 - 但是 - 沒有必要實際編程的應用程序。只需註冊應用程序,以便獲得一個固定的應用程序ID(您需要它在這裏),你會沒事的。
  • redirect_uri
    這是重要的一步 - facebook重定向到redirect_uri中給出​​的uri,並向該uri添加「#access_token = ...」。你可以解析該URI獲取令牌:

用webbrowser調用上面的鏈接,使用http://localhost作爲redirect_uri,你會沒事的。瀏覽器會嘗試撥打http://localhost#access_token=....,但顯然會失敗,但您可以解析url以獲取令牌。這不是一個非常簡單的過程,但它適用於我。

+0

是否爲你工作? – 2012-07-14 08:27:45

1

您可以將訪問令牌的使用期限延長至60天。 你可以通過這樣的:

https://developers.facebook.com/docs/facebook-login/access-tokens/

如果您從您的服務器端下面的調用,Facebook將返回您的訪問令牌,這將是有效期爲2個月(擴展的訪問令牌):

GET /oauth/access_token? 
    grant_type=fb_exchange_token&   
    client_id={app-id}& 
    client_secret={app-secret}& 
    fb_exchange_token={short-lived-token} 
相關問題