facebook - Example project/tutorial for demonstration of different features of sociallibs in Android -


about sociallib:

http://www.androidlibs.com/sociallib.html

http://code.google.com/p/sociallib/wiki/advancedguide

http://code.google.com/p/sociallib/wiki/sociallibguide

sociallib aims make development of social apps more easier. currently, social lib provides access following social networks :

  • facebook
  • twitter
  • google
  • buzz
  • linkedin

now scenario:

i created apps in twitter, facebook , generated api , secret keys.

i tried follow guide in wiki page of sociallibs.

but unfortunately i'm stuck.. need point working source of connection , posting facebook, twitter...etc

here code tried out.. can correct me if there errors..?
java code:

package com.schogini.socialib2x;  import java.io.ioexception;  import javax.xml.parsers.parserconfigurationexception;  import org.scribe.oauth.token; import org.xml.sax.saxexception;  import oauth.signpost.exception.oauthcommunicationexception; import oauth.signpost.exception.oauthexpectationfailedexception; import oauth.signpost.exception.oauthmessagesignerexception; import oauth.signpost.exception.oauthnotauthorizedexception;  import android.app.activity; import android.os.bundle; import android.widget.textview;  import com.expertiseandroid.lib.sociallib.connectors.socialnetworkhelper; import com.expertiseandroid.lib.sociallib.connectors.twitterconnector; import com.expertiseandroid.lib.sociallib.exceptions.notauthentifiedexception; import com.expertiseandroid.lib.sociallib.model.twitter.twitteruser;  public class mainact extends activity {      string cons_key = "sdasdadsfdafafafwrfgsdfadfafasfasfsaf";     string cons_sec = "sdasdadsfdafafafwrfgsdfadfafasfasfsaf";     string callback = "http://schogini.in";      /** called when activity first created. */     @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);          twitterconnector twitter = socialnetworkhelper.createtwitterconnector(cons_key, cons_sec, callback);         try {             twitter.requestauthorization(this);         } catch (oauthmessagesignerexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthnotauthorizedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthexpectationfailedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthcommunicationexception e) {             // todo auto-generated catch block             e.printstacktrace();         }         try {             twitter.authorize(this);         } catch (oauthmessagesignerexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthnotauthorizedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthexpectationfailedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthcommunicationexception e) {             // todo auto-generated catch block             e.printstacktrace();         }         token @ = twitter.getaccesstoken();         string token = at.gettoken(); //you can store these 2 strings         string secret = at.getsecret();//in order build token          token myaccesstoken = new token(token, secret);         twitter.authentify(myaccesstoken);          twitteruser me;         int nbfollowers = 0;         string nickname = null;         try {             me = twitter.getuser();             nickname = me.getusername(); //some information available through method calls             nbfollowers = me.nbfollowers; //some available through object fields         } catch (oauthmessagesignerexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthexpectationfailedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthcommunicationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (saxexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (parserconfigurationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (ioexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (notauthentifiedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } //retrieves current user           textview tv = (textview) findviewbyid(r.id.text1);         tv.settext("you logged in " + nickname + " , have " + nbfollowers + " followers"); //now can print information retrieved onscreen          try {             twitter.tweet("tweeting code");         } catch (oauthmessagesignerexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthexpectationfailedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthcommunicationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (saxexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (parserconfigurationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (ioexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (notauthentifiedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } //a simple tweet          try {             twitter.logout(this);         } catch (oauthmessagesignerexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthexpectationfailedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (oauthcommunicationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (notauthentifiedexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (saxexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (parserconfigurationexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (ioexception e) {             // todo auto-generated catch block             e.printstacktrace();         } //providing code located in activity (or context) class     }  } 

manifest code:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.schogini.socialib2x"       android:versioncode="1"       android:versionname="1.0">      <application android:icon="@drawable/icon" android:label="@string/app_name">         <activity android:name=".mainact" android:label="@string/app_name">             <intent-filter>                 <action android:name="android.intent.action.main" />                 <category android:name="android.intent.category.launcher" />                 <data android:scheme="testapp" android:host="twitter" />             </intent-filter>         </activity>     </application>     <uses-permission android:name="android.permission.internet" />     </manifest> 

here logcat output:

04-30 17:08:26.584: info/activitymanager(60): starting: intent { act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10000000 cmp=com.schogini.socialib2x/.mainact } pid 374 04-30 17:08:26.754: debug/androidruntime(374): shutting down vm 04-30 17:08:26.825: info/activitymanager(60): start proc com.schogini.socialib2x activity com.schogini.socialib2x/.mainact: pid=384 uid=10040 gids={3003, 1015} 04-30 17:08:26.855: info/androidruntime(374): note: attach of thread 'binder thread #3' failed 04-30 17:08:26.894: debug/dalvikvm(374): gc_concurrent freed 102k, 69% free 320k/1024k, external 0k/0k, paused 3ms+2ms 04-30 17:08:26.985: debug/jdwp(374): got wake-up signal, bailing out of select 04-30 17:08:26.985: debug/dalvikvm(374): debugger has detached; object registry had 1 entries 04-30 17:08:30.385: warn/resources(384): converting string: typedvalue{t=0x12/d=0x0 a=2 r=0x7f050000} 04-30 17:08:30.444: error/dalvikvm(384): not find class 'oauth.signpost.commonshttp.commonshttpoauthconsumer', referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.<init> 04-30 17:08:30.444: warn/dalvikvm(384): vfy: unable resolve new-instance 230 (loauth/signpost/commonshttp/commonshttpoauthconsumer;) in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector; 04-30 17:08:30.454: debug/dalvikvm(384): vfy: replacing opcode 0x22 @ 0x0011 04-30 17:08:30.464: debug/dalvikvm(384): vfy: dead code 0x0013-0025 in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.<init> (ljava/lang/string;ljava/lang/string;ljava/lang/string;ljava/lang/string;)v 04-30 17:08:30.484: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthconsumer.sign, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.signedgetrequest 04-30 17:08:30.505: warn/dalvikvm(384): vfy: unable resolve virtual method 1062: loauth/signpost/commonshttp/commonshttpoauthconsumer;.sign (ljava/lang/object;)loauth/signpost/http/httprequest; 04-30 17:08:30.505: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x000c 04-30 17:08:30.524: debug/dalvikvm(384): vfy: dead code 0x000f-0018 in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.signedgetrequest (ljava/lang/string;)lcom/expertiseandroid/lib/sociallib/messages/readableresponse; 04-30 17:08:30.544: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthconsumer.sign, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.signedpostrequest 04-30 17:08:30.544: warn/dalvikvm(384): vfy: unable resolve virtual method 1062: loauth/signpost/commonshttp/commonshttpoauthconsumer;.sign (ljava/lang/object;)loauth/signpost/http/httprequest; 04-30 17:08:30.554: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x0020 04-30 17:08:30.564: debug/dalvikvm(384): vfy: dead code 0x0023-002c in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.signedpostrequest (ljava/lang/string;ljava/util/list;)lcom/expertiseandroid/lib/sociallib/messages/readableresponse; 04-30 17:08:30.585: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthconsumer.settokenwithsecret, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.authentify 04-30 17:08:30.585: warn/dalvikvm(384): vfy: unable resolve virtual method 1061: loauth/signpost/commonshttp/commonshttpoauthconsumer;.settokenwithsecret (ljava/lang/string;ljava/lang/string;)v 04-30 17:08:30.595: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x000d 04-30 17:08:30.605: debug/dalvikvm(384): vfy: dead code 0x0010-0012 in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.authentify (lorg/scribe/oauth/token;)z 04-30 17:08:30.624: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthprovider.retrieveaccesstoken, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.authorize 04-30 17:08:30.624: warn/dalvikvm(384): vfy: unable resolve virtual method 1064: loauth/signpost/commonshttp/commonshttpoauthprovider;.retrieveaccesstoken (loauth/signpost/oauthconsumer;ljava/lang/string;)v 04-30 17:08:30.634: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x0012 04-30 17:08:30.644: debug/dalvikvm(384): vfy: dead code 0x0015-002b in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.authorize (landroid/app/activity;)v 04-30 17:08:30.675: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthconsumer.gettoken, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.getaccesstoken 04-30 17:08:30.675: warn/dalvikvm(384): vfy: unable resolve virtual method 1059: loauth/signpost/commonshttp/commonshttpoauthconsumer;.gettoken ()ljava/lang/string; 04-30 17:08:30.685: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x0004 04-30 17:08:30.694: debug/dalvikvm(384): vfy: dead code 0x0007-0015 in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.getaccesstoken ()lorg/scribe/oauth/token; 04-30 17:08:30.724: info/dalvikvm(384): not find method oauth.signpost.commonshttp.commonshttpoauthprovider.retrieverequesttoken, referenced method com.expertiseandroid.lib.sociallib.connectors.twitterconnector.requestauthorization 04-30 17:08:30.724: warn/dalvikvm(384): vfy: unable resolve virtual method 1065: loauth/signpost/commonshttp/commonshttpoauthprovider;.retrieverequesttoken (loauth/signpost/oauthconsumer;ljava/lang/string;)ljava/lang/string; 04-30 17:08:30.735: debug/dalvikvm(384): vfy: replacing opcode 0x6e @ 0x0006 04-30 17:08:30.735: debug/dalvikvm(384): vfy: dead code 0x0009-0018 in lcom/expertiseandroid/lib/sociallib/connectors/twitterconnector;.requestauthorization (landroid/content/context;)v 04-30 17:08:30.765: warn/dalvikvm(384): vfy: unable find class referenced in signature (loauth/signpost/commonshttp/commonshttpoauthconsumer;) 04-30 17:08:30.784: debug/androidruntime(384): shutting down vm 04-30 17:08:30.784: warn/dalvikvm(384): threadid=1: thread exiting uncaught exception (group=0x40015560) 04-30 17:08:30.825: error/androidruntime(384): fatal exception: main 04-30 17:08:30.825: error/androidruntime(384): java.lang.noclassdeffounderror: oauth.signpost.commonshttp.commonshttpoauthconsumer 04-30 17:08:30.825: error/androidruntime(384):     @ com.expertiseandroid.lib.sociallib.connectors.twitterconnector.<init>(twitterconnector.java:121) 04-30 17:08:30.825: error/androidruntime(384):     @ com.expertiseandroid.lib.sociallib.connectors.twitterconnector.<init>(twitterconnector.java:113) 04-30 17:08:30.825: error/androidruntime(384):     @ com.expertiseandroid.lib.sociallib.connectors.socialnetworkhelper.createtwitterconnector(socialnetworkhelper.java:62) 04-30 17:08:30.825: error/androidruntime(384):     @ com.schogini.socialib2x.mainact.oncreate(mainact.java:35) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.activitythread.performlaunchactivity(activitythread.java:1611) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.activitythread.handlelaunchactivity(activitythread.java:1663) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.activitythread.access$1500(activitythread.java:117) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.activitythread$h.handlemessage(activitythread.java:931) 04-30 17:08:30.825: error/androidruntime(384):     @ android.os.handler.dispatchmessage(handler.java:99) 04-30 17:08:30.825: error/androidruntime(384):     @ android.os.looper.loop(looper.java:123) 04-30 17:08:30.825: error/androidruntime(384):     @ android.app.activitythread.main(activitythread.java:3683) 04-30 17:08:30.825: error/androidruntime(384):     @ java.lang.reflect.method.invokenative(native method) 04-30 17:08:30.825: error/androidruntime(384):     @ java.lang.reflect.method.invoke(method.java:507) 04-30 17:08:30.825: error/androidruntime(384):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839) 04-30 17:08:30.825: error/androidruntime(384):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:597) 04-30 17:08:30.825: error/androidruntime(384):     @ dalvik.system.nativestart.main(native method) 04-30 17:08:30.854: warn/activitymanager(60):   force finishing activity com.schogini.socialib2x/.mainact 04-30 17:08:31.425: warn/activitymanager(60): activity pause timeout historyrecord{4066a610 com.schogini.socialib2x/.mainact} 04-30 17:08:34.014: info/process(384): sending signal. pid: 384 sig: 9 04-30 17:08:34.094: warn/inputmanagerservice(60): window focused, ignoring focus gain of: com.android.internal.view.iinputmethodclient$stub$proxy@405aee30 04-30 17:08:34.495: info/activitymanager(60): process com.schogini.socialib2x (pid 384) has died. 04-30 17:08:37.704: debug/dalvikvm(284): gc_explicit freed 8k, 54% free 2543k/5511k, external 716k/1038k, paused 91ms 04-30 17:08:42.408: warn/activitymanager(60): activity destroy timeout historyrecord{4066a610 com.schogini.socialib2x/.mainact} 04-30 17:08:42.855: debug/dalvikvm(297): gc_explicit freed 321k, 54% free 2539k/5511k, external 716k/1038k, paused 186ms 04-30 17:08:47.844: debug/dalvikvm(311): gc_explicit freed 476k, 55% free 2592k/5703k, external 716k/1038k, paused 103ms 

thanks in advance...

it seems missing oauth library. possible need include oauth-signpost?


Comments