2011-06-28 20 views
0

私の仕事は、このようなものです(html)、各友達に対応するcheakboxesがあります(リストビュー) 3)選択した友人にメッセージを投稿することができます 4)投稿/送信された壁のボタン。フェッチFacebookの友達は

だから私は

public class Servletfb extends HttpServlet { 
private static final long serialVersionUID = 1L; 
private String API_KEY="1c36b59974ca90e4cefaa1f5c8e18edf"; 
private String SECRET_KEY="77f2d4df446ac8ae8b35b008da3d6070"; 

/** 
* Default constructor. 
*/ 
public Servletfb() { 
    // TODO Auto-generated constructor stub 
} 

/** 
* @see Servlet#init(ServletConfig) 
*/ 
public void init(ServletConfig config) throws ServletException { 
    // TODO Auto-generated method stub 

     IFacebookRestClient client = new FacebookXmlRestClient(API_KEY, 
        SECRET_KEY); 

      try { 
       String token = client.auth_createToken(); 
       String url = "http://www.facebook.com/login.php?api_key=" + API_KEY 
         + "&v=1.0" + "&auth_token=" + token; 
       System.out.println(url); 
       Runtime.getRuntime().exec("explorer \"" + url + "\""); 

       System.out.println("Use browser to login then press return"); 
       System.in.read(); 

       String session = client.auth_getSession(token); 
       System.out.println("Session key is " + session); 

       client.friends_get(); 

      } catch (FacebookException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

} 

を以下のように、要求(敵のログイン)を作成し、友人リストを盗んするsevletを書くことにしましたが、私は、私が使用しています

javax.servlet.ServletException: Error instantiating servlet class com.vibhor.Servletfb 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 

のような例外何かを得ましたTomcat Server、facebook java 3.0.2 api

私は私の要求を言いましたが、私は非常に初期段階に固執しているので、これを達成するための最良の方法は何ですか?すべてのヘルプはにappriciatedされるだろう ...

{EDIT} 私はdoPostメソッドにコードを置く()およびスタックトレースがある: -

java.lang.NoClassDefFoundError: com/google/code/facebookapi/FacebookException 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
na.at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
at java.lang.Class.getConstructor0(Unknown Source) 
at java.lang.Class.newInstance0(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:255) 
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) 
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108) 
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.lang.ClassNotFoundException:  com.google.code.facebookapi.FacebookException 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360) 
at org.apache.cataliloader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) 

[EDIT]

OK ...

public static void main(String[] args) 
{ 

    FacebookClient facebookClient = new DefaultFacebookClient(args[0]); 
User user = facebookClient.fetchObject("me", User.class); 
System.out.println("User name: " + user.getName()); 
Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class); 
System.out.println("Count of my friends: " + myFriends.getData().size()); 
       System.out.println(myFriends.toString()); 
} 

と私の出力がJSON Fでの私の友人のリストである:働いていないので、私は残りのAPIをFacebookへ投稿切り替え、そしてこのような何かを書くようですORM:

INFO: Facebook responded with HTTP status code 200 and response body: {"data": [{"name":"Wasim Sama","id":"550332915"},{"name":"Ujjwal Mishra","id":"599310869"},{"name":"Rj Priyanka","id":"764454678"},{"name":"Paras Arora","id":"778875857"},{"name":"Harshit Makkar","id":"1012133181"},{"name":"Sudhanshu Shukla","id":"1019487229"},{"name":"Vikas Jain","id":"1023819462"},{"name":"Vijay Boregowda","id":"1039516000"},{"name":"Tulika Gera","id":"1097057138"},{"name":"Deepak Kumar R","id":"1132446570"},{"name":"Nitin Goyal","id":"1247507205"},{"name":"Romil Choudaha","id":"1447479935"},{"name":"Saumil Gupta","id":"1501336418"},{"name":"Vebhav Gupta","id":"1507248199"},{"name":"Ashish Vimal","id":"1508694554"},{"name":"Utkarsh Singh","id":"1574203311"},{"name":"Varun Kumar","id":"1623342038"},{"name":"Pradeep Kumar Krishnia","id":"1632769647"},{"name":"Girish Grover","id":"1647181709"},{"name":"Gaurav Gopalia","id":"1661547047"},{"name":"Rajendra Kasana","id":"1664287122"},{"name":"Avdhesh Dubey","id":"1794517002"},{"name":"Shivendra Mathur","id":"1835574934"},{"name":"Vasu Jain","id":"100000009957578"},{"name":"Punit Agrawal","id":"100000118068889"},{"name":"Ramakant Jaiman","id":"100000155434269"},{"name":"Ankit Sharma","id":"100000193433562"},{"name":"Anuj Jain","id":"100000489571784"},{"name":"Camille Ali","id":"100000603236882"},{"name":"Ankur Sharma","id":"100000702407825"},{"name":"Ashutosh Kumar","id":"100000705998842"},{"name":"Prarit Gupta","id":"100000747266879"},{"name":"Amit Gupta","id":"100000781280458"},{"name":"Govind Sharma","id":"100000819234210"},{"name":"Vijay Saini","id":"100000872004792"},{"name":"Rahul Kumar","id":"100001055753094"},{"name":"Krishan Agarwal","id":"100001091775590"},{"name":"Vaibhav Singh","id":"100001147539787"},{"name":"Arvind Kumar Singh","id":"100001492873242"},{"name":"Rajendra Gupta","id":"100001502173655"},{"name":"Ajay Kumar Tiwari","id":"100001520262873"},{"name":"Alok Rai","id":"100001561421479"}]} 

がどのようにJSONオブジェクトのうちの名前を取得し、私はJSONの作業経験がないことから、htmlページ上に表示するために、それは任意の助け...私には少しトリッキーなようです?

+0

ショー:(。すべての友達をフェッチするためにいくつかの拡張アクセス権が存在する可能性がある)

は、Java /サーブレットを使ってアプリを使用しているのみFBの友人を取得する方法を参照するには、ここでそれを説明する記事ですstacktrace –

+0

スタックトレースがないと、これを診断するのは難しいですが、**サーブレットの 'init'メソッドから' explorer'プロセスを開始してはいけないと確信しています**。私はそれが誤りであるところを推測するつもりです。実際にFBのための有効なOAuth2フローとして機能しないという事実は言うまでもありません。 –

答えて

0

この情報は役に立ちましたか?

http://code.google.com/p/facebook-java-api/wiki/Examples

+0

私はそれを試してみましたが、例外はありませんでした。ユーザーの友達をフェッチして表示するフィルタを追加したくありません。 – vibhor

+0

タスクはフェイスブックにログインし、友達をフェッチしてHTMLページを表示します – vibhor

+0

共有したAPIリンク明らかに「DEAD:代わりにRestFBを見に行ってください」と述べている。 –

1

の質問は非常に古いですが。私は、Javaを使用してFacebookの友達をフェッチするためのソリューションのためにここに着いているユーザーのためにここに書いています。

新しいFBアプリケーションを作成した場合、Facebookの新しいAPIバージョン2.0では、デフォルトのアクセス権を持つすべてのFacebookフレンド、つまりpublic_profileをアプリが取得できなくなります。バージョン1では可能でした。今、FacebookはあなたのウェブサイトにFacebookログインダイアログを使ってすでにログインしているアプリを使っている友人だけをフェッチすることができます。そのためには、FBログインダイアログボックスを開くリンクにuser_friends権限を指定する必要があります。フルhttp://www.devtrainings.com/2012/01/how-to-get-facebook-friends-list-in.html

関連する問題