ANDROID - update status Linked-IN


jars:

1. linkedin-j-android.jar
2. scribe-1.3.1.jar

MainActivity:

 package com.testshare;  
import java.util.EnumSet;
import org.scribe.oauth.OAuthService;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.google.code.linkedinapi.client.LinkedInApiClient;
import com.google.code.linkedinapi.client.LinkedInApiClientFactory;
import com.google.code.linkedinapi.client.enumeration.NetworkUpdateType;
import com.google.code.linkedinapi.schema.Network;
public class TestshareActivity extends Activity {
private int LINKEDIN_OAUTH_RESULT_CODE = 4000;
private OAuthService service;
private static final String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
click();
}
public void click() {
Intent intent = new Intent(TestshareActivity.this,
LinkedInOAuthActivity.class);
startActivityForResult(intent, LINKEDIN_OAUTH_RESULT_CODE);
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
shareText_new();
super.onRestart();
}
private void shareText_new() {
// String scopeParams = "rw_nus+r_basicprofile";
// TODO Auto-generated method stub
try {
final LinkedInApiClientFactory factory = LinkedInApiClientFactory
.newInstance(generalClass.APIKEY, generalClass.APISECRET);
final LinkedInApiClient client = factory.createLinkedInApiClient(
generalClass._Token1, generalClass._Secret1);
client.postNetworkUpdate("hello DJ-android.blogspot.com");
System.out
.println("Your update has been posted. Check the LinkedIn site for confirmation.");
System.out.println("Fetching your network updates of type:"
+ NetworkUpdateType.STATUS_UPDATE);
Network network = client.getNetworkUpdates(EnumSet
.of(NetworkUpdateType.STATUS_UPDATE));
// printResult(network);
} catch (Exception e) {
// TODO: handle exception
Log.e("error share st--->", "" + e.getMessage().toString());
}
}
}

LinkedInOAuthActivity

 package com.testshare;  
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import org.scribe.builder.ServiceBuilder;
import org.scribe.builder.api.LinkedInApi;
import org.scribe.exceptions.OAuthException;
import org.scribe.model.*;
import org.scribe.oauth.*;
public class LinkedInOAuthActivity extends Activity {
private WebView mWebView = null;
private OAuthService mService = null;
private Token mRequestToken = null;
String scopeParams = "rw_nus+r_baseprofile";
String scopeParams1 = "rw_nus";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linkedin_oauth);
mService = new ServiceBuilder().provider(LinkedInApi.class)
.apiKey(generalClass.APIKEY).apiSecret(generalClass.APISECRET)
.callback(generalClass.CALLBACK).scope(scopeParams1).build();
Log.e("mService----->", "" + mService);
mWebView = (WebView) findViewById(R.id.linkedin_webview);
// Start the async task
LinkedInAuthTask task = new LinkedInAuthTask();
task.execute();
}
// Async task for authentication
private class LinkedInAuthTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... arg0) {
// Temporary URL
String authURL = "http://api.linkedin.com/";
try {
mRequestToken = mService.getRequestToken();
Log.e("mRequestToken----->", "" + mRequestToken);
// mService.getAccessToken(arg0, arg1)
authURL = mService.getAuthorizationUrl(mRequestToken);
Log.e("authURL----->", "" + authURL);
} catch (OAuthException e) {
e.printStackTrace();
return null;
}
return authURL;
}
@Override
protected void onPostExecute(String authURL) {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
super.shouldOverrideUrlLoading(view, url);
if (url.startsWith("oauth")) {
mWebView.setVisibility(WebView.GONE);
final String url1 = url;
Thread t1 = new Thread() {
public void run() {
Uri uri = Uri.parse(url1);
String verifier = uri
.getQueryParameter("oauth_verifier");
Log.e("verifier----->", "" + verifier);
generalClass._verifier = verifier;
Verifier v = new Verifier(verifier);
Token accessToken = mService.getAccessToken(
mRequestToken, v);
// Token accessToken1 =
// request.getSession().setAttribute("requestToken",
// v);
Log.e("accessToken.getToken()----->", ""
+ accessToken.getToken());
Log.e("accessToken.getSecret()----->", ""
+ accessToken.getSecret());
// Token a = accessToken;
generalClass._Token = accessToken;
generalClass._Token1 = accessToken.getToken();
generalClass._Secret1 = accessToken.getSecret();
Intent intent = new Intent();
intent.putExtra("access_token",
accessToken.getToken());
intent.putExtra("access_secret",
accessToken.getSecret());
setResult(RESULT_OK, intent);
finish();
}
};
t1.start();
}
return false;
}
});
mWebView.loadUrl(authURL);
}
}
}

linkedin_oauth.xml

 <?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<WebView android:id="@+id/linkedin_webview" android:focusable="true"
android:scrollbars="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</LinearLayout>

extraClass

 package com.testshare;  
import org.scribe.model.Token;
public class generalClass {
public final static String APIKEY = "linkedin API KEY";
public final static String APISECRET = "linkedin API SECRET";
public final static String CALLBACK = "oauth://linkedin";
public static String _verifier;
public static Token _Token;
public static String _Secret;
public static String _Token1;
public static String _Secret1;
}

manifest File

 <?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.testshare" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:maxSdkVersion="13" android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".TestshareActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LinkedInOAuthActivity"
android:theme="@android:style/Theme.Light" android:configChanges="keyboardHidden|orientation"></activity>
</application>
</manifest>

reference links:

http://code.google.com/p/linkedin-j/source/browse/trunk/linkedin-j/core/src/examples/java/com/google/code/linkedinapi/client/examples/PostNetworkUpdateExample.java?r=197

http://stackoverflow.com/questions/15082693/android-update-status-linked-in-in-apps-background

https://github.com/fernandezpablo85/scribe-java

http://stackoverflow.com/questions/12188341/cant-post-anything-on-linkedin-using-linkedin-j

Postingan terkait:

Belum ada tanggapan untuk "ANDROID - update status Linked-IN"

Post a Comment