2015-08-12 2 views
3

У меня есть эта простая проблема, сложная из-за FB. Я пытаюсь поделиться с android ссылкой и изображением, используя facebook sdk. Кто-нибудь играл с ShareOpenGraphObject, ShareOpenGraphAction и ShareOpenGraphContent раньше, документация на facebook просто отстой, никаких примеров вообще. Я жду примеров.Поделиться ссылкой и изображением на facebook

Благодаря

+0

Лично у меня нет. Я уверен, что многие люди готовы помочь, но вам нужно показать какой-то код. –

+1

Я уверен, что документация FB достаточно хороша. Если вам нужна помощь, вы должны опубликовать код, который вы пробовали до сих пор. – Rohit5k2

+0

let s post some code then: –

ответ

0

Его просто, Вы можете найти множество примеров, а также в Facebook SDK вы можете найти образец для того же ...

Bundle postParams = new Bundle();   
postParams.putString("link", url); 
postParams.putString("picture", imgUrl); 

    Request request = new Request(session, "me/feed", postParams, 
        HttpMethod.POST, callback); 

      RequestAsyncTask task = new RequestAsyncTask(request); 
      task.execute(); 
+0

не просто, fb docs отстой, и я хочу создать контент и отобразить его, чтобы пользователи могли редактировать. спасибо –

0

позволяют ей опубликовать код, то:

ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() 
      .putString("og:type", "books.book") 
      .putString("og:title", "A Game of Thrones") 
      .putString("og:description", "In the frozen wastes to the north of Winterfell, sinister and supernatural forces are mustering.") 
      .putString("books:isbn", "0-553-57340-3") 
      .build(); 

    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() 
      .setActionType("books.reads") 
      .putObject("book", object) 
      .putPhoto("image", photo) 
      .build(); 

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

    shareDialog.show(this, content); 

Идея заключается в том, что я не хочу использовать книгу, я просто хочу, чтобы у меня было изображение и ссылка ... как это сделать? facebook sdk sucks

0

Я думаю, используя facebook sdk 4.0, вы можете делиться содержимым через share api.

например:

public void share() 
{ 
ShareLinkContent content=new ShareLinkContent.Builder() 
.setContentTitle("Your Title") 
.setContentUrl(Uri.parse("website link")) 
.setImageUrl(Uri.parse("Image url")) 
.build(); 

ShareApi.share(content, new FacebookCallback<Sharer.Result>(){ 
@Override 
public void onSuccess(Result result){ 

} 
@Override 
public void onCancel(){ 

} 
@Override 
public void onError(FacebookException error){ 

} 
}); 
} 
+0

может быть решением, но это не так: D, мне нужно поделиться локальным изображением, а не с ссылкой –

+0

Вы можете обмениваться локальными изображениями, используя класс sharePhoto, который указан в документе facebook sdk. – userDroid

+0

Я знаю, что могу использовать sharePhoto, но также мне нужно прикрепить ссылку и комментарий к фото ... у вас есть способ узнать, как я могу это сделать? –

0

Для обмена ссылки и изображения, ShareDialog Предоставляет функциональные возможности для совместного использования контента через Facebook Share Диалог и

ShareLinkContent Описывает содержание ссылку для совместного использования.

- один из методов без метода Open Graph.

сниппето, как

private ShareDialog shareDialog; 
private boolean canPresentShareDialogWith; 

shareDialog = new ShareDialog(this); 

canPresentShareDialogWith = ShareDialog.canShow(ShareLinkContent.class); 


ShareLinkContent linkContent = new ShareLinkContent.Builder().setContentTitle("Shared from " + "<APP NAME>") 
          .setContentDescription(
            "Question:" + data.getQuestion() + "\n" 
          // + "Asked by : " 
          // + data.getName() + "\n" 
          ) 
          .setContentUrl(
            Uri.parse("<Website url>")) 
          .setImageUrl(Uri.parse(data.getPicUploadPath())) 
          .build(); 

        if (canPresentShareDialogWith) { 
         shareDialog.show(linkContent); 
        } else if (profile != null && hasPublishPermission()) { 
         ShareApi.share(linkContent, shareCallback); 
        } 


private FacebookCallback<Sharer.Result> shareCallback = new FacebookCallback<Sharer.Result>() { 
    @Override 
    public void onCancel() { 
     Log.d("HelloFacebook", "Canceled"); 
    } 

    @Override 
    public void onError(FacebookException error) { 
     Log.d("HelloFacebook", String.format("Error: %s", error.toString())); 
     String title = getString(R.string.error); 
     String alertMessage = error.getMessage(); 
     showResult(title, alertMessage); 
    } 

    @Override 
    public void onSuccess(Sharer.Result result) { 
     Log.d("HelloFacebook", "Success!"); 
     if (result.getPostId() != null) { 
      String title = getString(R.string.success); 
      String id = result.getPostId(); 
      String alertMessage = getString(
        R.string.successfully_posted_post, id); 
      showResult(title, alertMessage); 
     } 
    } 

    private void showResult(String title, String alertMessage) { 
     new AlertDialog.Builder(NewsfeedMain.this).setTitle(title) 
       .setMessage(alertMessage) 
       .setPositiveButton(R.string.ok, null).show(); 
    } 
}; 

Метод здесь делится ссылкой с соответствующей URL-адресом веба для загрузки, при нажатии из корма FB и изображения разделяемое через ссылки на родную facebook приложение для Android или откат в диалоговом окне совместного доступа sdk, приложение facebook не существует.

Смежные вопросы