Thứ Tư, 17 tháng 9, 2014

Sử dụng facebook trong android

Cách post tới wall với object facebook:
private void postToWall()
{
AsyncFacebookRunner mAsyncFbRunner = new AsyncFacebookRunner(mFacebook);

Bundle params = new Bundle();
   
params.putString("message", "sdsddsdsd");
params.putString("name", "Dexter");
params.putString("caption", "londatiga.net");
params.putString("link", "http://www.londatiga.net");
params.putString("description", "Dexter, seven years old dachshund who loves to catch cats, eat carrot and krupuk");
params.putString("picture", "http://twitpic.com/show/thumb/6hqd44");

mAsyncFbRunner.request("me/feed", params,"POST",new WallPostListener(),new Object());
}

private final class WallPostListener implements AsyncFacebookRunner.RequestListener {

@Override
public void onComplete(String response, Object state) {
// TODO Auto-generated method stub
Log.d("phanbom", "Test response ne:"+response);

}

@Override
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub

}

@Override
public void onFileNotFoundException(FileNotFoundException e,
Object state) {
// TODO Auto-generated method stub

}

@Override
public void onMalformedURLException(MalformedURLException e,
Object state) {
// TODO Auto-generated method stub

}

@Override
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub

}
 }

Đây là code khởi động việc login:

mFacebook.authorize(this, PERMISSIONS, -1, new FbLoginDialogListener());
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    mFacebook.authorizeCallback(requestCode, resultCode, data);
    }
    private final class FbLoginDialogListener implements DialogListener {

@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
Log.d("phanbom", "facebook ne");
            SessionStore.save(mFacebook, TestConnect.this);
            mFacebookBtn.setText("  Facebook (No Name)");
            mFacebookBtn.setChecked(true);
mFacebookBtn.setTextColor(Color.WHITE);
 
            getFbName();
}

@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
Toast.makeText(TestConnect.this, "Facebook connection failed", Toast.LENGTH_SHORT).show();
          
          mFacebookBtn.setChecked(false);
}

@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
Toast.makeText(TestConnect.this, "Facebook connection failed", Toast.LENGTH_SHORT).show(); 
       
        mFacebookBtn.setChecked(false);
}

@Override
public void onCancel() {
// TODO Auto-generated method stub
mFacebookBtn.setChecked(false);
}

    }

Đây là code post status nhờ vào token đã đăng nhập từ trước , sử dụng cách của phiên bản facebook sdk 3.0 trở lên:

SharedPreferences savedSession = getApplicationContext().getSharedPreferences(SessionStore.KEY, Context.MODE_PRIVATE);

Date date=null;
        try {
            date = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(savedSession.getString(SessionStore.EXPIRES,"0"));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
token = AccessToken.createFromExistingAccessToken(savedSession.getString(SessionStore.TOKEN, null),date, null, AccessTokenSource.TEST_USER, null);


public void postNew()
{
Session.openActiveSessionWithAccessToken(this,token,new Session.StatusCallback() {

@Override
public void call(Session session, SessionState state,
Exception exception) {
// TODO Auto-generated method stub
            // callback when session changes state
  if (session.isOpened()) {


                       // make request to the /me API
                       Request.newMeRequest(session, new Request.GraphUserCallback() {

                         // callback after Graph API response with user object
                         @Override
                         public void onCompleted(GraphUser user, Response response) {
                           if (user != null) {
                          Log.d("phanbom","tiep theo ne:"+user.getName()+"|"+user.getUsername());
                  
                           }
                         }
         }).executeAsync();
                       GraphPlace place;
                       Request request = Request
                               .newStatusUpdateRequest(Session.getActiveSession(), "daydaydayday",new Request.Callback() {
                                   @Override
                                   public void onCompleted(Response response) {
                                  Log.d("phanbom","respone ::::"+response.toString());
                                       //showPublishResult(message, response.getGraphObject(), response.getError());
                                   }
                               });
                       request.executeAsync();
                       
 }
        
}
});
}
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    }

Không có nhận xét nào:

Đăng nhận xét