Безотказный обмен Facebook в Android
Пользователь должен нажимать кнопку "Опубликовать" в диалоговом окне "Поделиться" каждый раз, когда проходит уровень. Мне нужно устранить эти трудности для пользователя. На данный момент я создал собственную историю и каждый раз просил пользователя нажимать на сообщение.
Вопрос:
Я слышал о FB-посте для Open Graph. Возможно ли это в Android?
Если в Android доступен пост FB без трений, не могли бы вы указать исправление в моем коде, который я вставил ниже.
Если в Android доступен пост FB без ограничений, Какое разрешение мне нужно получить от пользователя?
Код
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "puzzlegameballmania:level")
.putString("og:title", "Cleared Level-1 !!!")
.putString("og:image", "http://ixxxxwsz.jpg")
.putString("og:url", "https://play.google.com/store/apps/details?id=com.gamxxxxx.android")
.putString("og:description", "Color of the balls matters more. Lets break the goal and go higher !")
.putString("puzzlegameballmania:level:title", "LEVEL 1")
.build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("puzzlegameballmania:clear")
.putObject("puzzlegameballmania:level", object)
.build();
// Create the content
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("puzzlegameballmania:level")
.setAction(action)
.build();
ShareDialog.show(AndroidLauncher.this, content);
1 ответ
- да
- Не использовать
ShareDialog
вместо этого используйте ShareApi, вот пример кода - Требуется разрешение publish_actions, и ваше приложение будет рассмотрено Facebook
Вы также можете прочитать это сообщение для разработчиков на Facebook, которое, по-видимому, препятствует неявной / автоматической публикации. Предупреждение пользователю отображается, если приложение не было просмотрено.
редактировать
Перед использованием ShareApi
, сначала проверьте, есть ли у приложения необходимые разрешения:
private boolean hasPublishPermission() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null && accessToken.getPermissions().contains("publish_actions");
}
Если нет, выполните код ниже, чтобы запросить разрешение:
LoginManager.getInstance().logInWithPublishPermissions(
this, Arrays.asList("publish_actions"));
Если вы используете ShareApi без надлежащего разрешения, он потерпит неудачу и onError(FacebookException)
будет вызван метод, если вы передали FacebookCallback ShareApi
,