2012-08-11 76 views
0

如何在Facebook上發佈帶有文本的圖像?我知道如何發佈文字,鏈接,但我也想發佈圖片。發佈圖像與來自android的facebook上的文本

這是我曾嘗試:

byte[] data = null; 
Bitmap bi = BitmapFactory.decodeFile("R.drawable.plate1"); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
data = baos.toByteArray(); 
parameters.putByteArray("picture", data); 

int plate = getResources().getIdentifier("com.b2creativedesigns.eyetest:drawable/plate1", null, null); 
parameters.putString("picture", String.valueOf(plate)); 

兩人都不工作。當我嘗試發佈時,沒有任何反應。沒有發佈。使用下面的代碼,它可以工作。

從網站發佈圖片很簡單,但當網站關閉或修改鏈接時,它不起作用。

parameters.putString("picture", "https://lh3.ggpht.com/f79UCpnLisZxO2P2C43f55YLvFpNco_cTcC-t9Ck-Qmqe5jwKbfnUvCh5N6-Te-mOw=w124"); 

第三個例子:

byte[] data = null; 
    Bitmap bi = BitmapFactory.decodeFile("R.drawable.plate1"); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    data = baos.toByteArray(); 
    parameters.putString("method", "photos.upload"); 
    parameters.putByteArray("picture", data); 

回答

0

編輯:對不起,我不應該放棄對因爲它棄用瞭如何使用REST API的建議。這是您使用Graph API將照片上傳到自己的牆上的方法。

Bundle params = new Bundle(); 
params.putByteArray("photo", data); 
params.putString("caption", "Test photo upload"); 
    mAsyncRunner.request("me/photos", params, "POST", 
    new PhotoUploadListener(), null); 

請試試看看它是否有效。這是直接從我們的文檔中的HackBook示例中截取的。爲了壓縮圖像,您可以在我們的SDK中使用我們的Utility.scaleImage方法,該方法將執行所有壓縮和縮放以匹配Facebook的標準。

============================================== ====================================

原始消息:

photos.upload使用REST API,因此我建議使用Graph API上傳照片,但這裏是使用REST API的快速和骯髒的解決方案。

一旦你有一個可變的字節數組像data,請執行下列操作:

Bundle params = new Bundle(); 
params.putString("method", "photos.upload"); 
params.putByteArray("picture", data); 
mFacebook.request(params); 

讓我知道是否有幫助。

+0

這沒有幫助。我更新了我的問題。 – erdomester 2012-08-17 19:39:46

+0

更新了我的答案,請嘗試我的新建議,並讓我知道如果可行。 – 2012-08-17 21:51:18

+0

這是去創造這樣的東西? (http://www.johnhaydon.com/wp-content/uploads/2012/01/friends-can-comment.png)看,這是一個發佈的文本,帶有鏈接和圖像。我想要這個,不只是發佈圖片。 – erdomester 2012-08-19 07:00:04

3
Session.openActiveSession(activity, true, 
          new Session.StatusCallback() { 
           @Override 
           public void call(Session session, 
             SessionState state, 
             Exception exception) { 
            // TODO Auto-generated method stub 
            if (session.isOpened()) { 
             fbSession = session; 
    Bundle bundle = new Bundle(); 
    bundle.putString("caption", "Check this out, what do you think?"); 
    bundle.putString("name", name); 
    bundle.putString("description", description); 
    bundle.putString("picture", image); 
    new WebDialog.FeedDialogBuilder(HomeActivity.this, session, bundle) 
      .build().show(); 
            } 
           } 

          }); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    default: 
     if (Session.getActiveSession() != null) 
      Session.getActiveSession().onActivityResult(this, requestCode, 
        resultCode, data); 
     break; 
    } 
} 

將此代碼添加到您的Android Manifest文件中,將您的Facebook ID放在FB_AppID位置。

<activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/><meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/FB_AppID"/> 
相關問題