2017-08-15 58 views
0

我正在將facebook SDK集成到我的應用程序中,但我對共享系統有點困惑。如何分享徽標+不可變的文字與Android的Facebook的Opengraph?

我的應用程序是教育性的,我希望我的用戶能夠吹噓爲「我在測試n°xx上有100/100」,並在Facebook上分享,就像您可以使用Runtastic一樣。

對於那些誰也不會知道,這裏是透過Runtastic股樣子(例子是法語,但你的想法):

runtastic shares example

由於我的應用程序是不是遊戲,這對於Open Graph Stories來說是不可能的(對於educationnal沒有類型),並且現在不推薦Custom Open Graph Stories,所以沒有任何對象是相關的,我不能再創建我自己的。

知道了,我該如何製作一個看起來像這樣的ShareDialog,旁邊有一個大徽標和一個不可修改的文本,鏈接到一個網站?

Sharing documentation告訴了所有關於共享一件事情的事情,但是當你想要將它與文本結合起來時,它並不是真的有用。

最接近我想要的就是使用ShareLinkContent以及我的應用程序在playstore上的鏈接和類似的報價。它可以做到這一點,但它看起來更像是用戶只是分享一個鏈接(這是真的),而不僅僅是吹噓成就。

我也可以分享作爲照片的標誌,並把吹牛作爲標題,但然後標誌會太大,標題必須是可修改的,所以每個人都可以告訴他得到100/100。

注意:法文文本的意思是「[此人]在3小時6分鐘內終止了27.94公里的跑步,並使用Runtastic應用程序保存」。我希望我的應用能夠顯示「[此人]在2016年會話中獲得了100/120,並且保存了MyAppName應用」。

NB2:我沒有得到任何服務器,只需一個鏈接Play商店中,一個Facebook應用程序和一個Facebook頁面

+0

好吧,我用SharePhoto創建的對象這種類型,來自bi tmap,然後使用.PutPhoto()函數將圖片添加到OpenGraphObject中,並將其與像標題/描述一樣的其他內容如.putString(「og:title」,myTitle)&.putString(「og:description」,myDescription)會幫助你。我有類似的問題,但對我來說,我不能改變冗長(只適用於「讀一本書」.. idk爲什麼) –

+0

你可以把整個代碼放在一個答案?這聽起來很不錯,但我不確定我應該創建哪個對象(因爲我認爲你需要一個動作來使用OpenGraphObject) –

+0

是的,讓我開始工作,我會發布我的代碼。 –

回答

0

你去那裏...

這是我的功能,這將使一個物體標題&的描述,也有來自遠程URL的圖片(但你需要創建一個畫面的位圖,對於我使用滑翔

private static void shareFacebook(Context context, Bitmap picture, String title, String videoURL, String description) { 
    SharePhoto photo = new SharePhoto.Builder() 
      .setBitmap(picture) 
      .setCaption(context.getResources().getString(R.string.floh_site)) 
      .setUserGenerated(true) 
      .build(); 

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() 
      .putString("og:type", "books.book") 
      .putString("og:url", videoURL) 
      .putString("og:title", title) 
      .putString("og:description", description) 
      .putPhoto("og:image", photo) 
      .putString("books:isbn", title) 
      .build(); 

    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() 
      .setActionType("books.wants_to_read") 
      .putObject("book", object) 
      .build(); 

    ShareOpenGraphContent c = new ShareOpenGraphContent.Builder() 
      .setPreviewPropertyName("book") 
      .setAction(action) 
      .build(); 

    ShareDialog.show(FlohApp.getTopActivity(), c); 
} 
+0

謝謝,但正如我擔心的那樣,您必須指定'og:type'。我的應用程序是教育的,你可以通過測試。我可以找到適合教育的文檔沒有類型... –

+0

那麼,你不想指定一個動作?或者你不想爲對象指定一個類型?你能解釋一下你想分享的樣子嗎? –

+0

正如我在帖子的標題和示例圖片中所說的:在不可變文本旁邊的徽標 –

相關問題