Приглашение в Facebook, Пригласить друзей
Я перешел на Facebook 4.0, чтобы реализовать AppInviteDialog для Android. Я следил за эта ссылка.
Появится диалоговое окно, я могу выбрать друзей, пригласить их, я получаю вызов onSuccess()
, но мои друзья не получают приглашение.
Я использовал приведенный ниже URL-адрес приложения: https://fb.me/****412097*****
Нет previewImageURL, хотя я видел изображение приложения в диалоговом окне.
код:
//Inside onCreate -
callbackManager = CallbackManager.Factory.create();
mInvititeDialog = new AppInviteDialog(this);
mInvititeDialog.registerCallback(callbackManager,
new FacebookCallback<AppInviteDialog.Result>() {
@Override
public void onSuccess(Result result) {
NetworkController.showCustomToast(
InviteFriendsActivity.this,
"Invitation Sent Successfully!");
finish();
}
@Override
public void onCancel() {
Log.d("Result", "Cancelled");
NetworkController.showCustomToast(
InviteFriendsActivity.this, "Cancelled");
finish();
}
@Override
public void onError(FacebookException exception) {
Log.d("Result", "Error " + exception.getMessage());
NetworkController.showCustomToast(
InviteFriendsActivity.this,
"Error while inviting friends");
finish();
}
});
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appLinkUrl).build();
AppInviteDialog.show(InviteFriendsActivity.this, content);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
Никакой помощи ниже похожих ссылок (даже если они из ios)
Код для приглашения fb не работает
https://stackoverflow.com/info/27547826/facebook-app-invites-issue
Facebook Приглашение к участию в конкурсе не получено
Ответы
Ответ 1
Хорошо, получается, что все отлично работает. Моя ошибка заключалась в том, что у вас не было установленного приложения, и не иметь разрешенное приложение должно генерировать push-уведомление.
После создания нового тестового пользователя, используя устройство, на котором приложение не было установлено в настоящий момент, и приложение NEVER было авторизовано с пользователем.
Итак, ключ здесь заключается в том, что никакое push-уведомление не будет создано, если приложение установлено на целевом устройстве, даже если пользователь ранее не разрешил приложение. Кроме того, по-видимому, если пользователь ранее разрешил приложение, даже если он был удален в какой-то момент, он также не будет генерировать уведомление.
Итак, если вы хотите протестировать это, создайте совершенно нового пользователя теста и войдите в приложение Facebook на платформе, на которой вы тестируете, и убедитесь, что приложение не установлено на устройстве.
Я думаю, что он все равно должен генерировать уведомление, несмотря на то, что приложение установлено, потому что несколько пользователей могут использовать одно и то же устройство, но похоже, что это сейчас.
Я оставлю это здесь, если у кого-то будет такая же проблема в будущем.
Жить долго и процветать!
Источник
Это действительно работало для меня, однако я не очень уверен, что он охватывает все сценарии и является идеальным решением. Публикация здесь для других пользователей и предложений, если таковые имеются.
Ответ 2
Я использую следующий код и отлично работаю... но после приглашения друзей (если у вас есть совместное приложение для Android, пригласить его проверить его/ее мобильное приложение..) приглашение не видно через браузеры
private CallbackManager sCallbackManager;
public void openDialogInvite(final Activity activity) {
String AppURl = "https://fb.me/421570...5709"; //Generated from //fb developers
String previewImageUrl = "http://someurl/13_dp.png";
sCallbackManager = CallbackManager.Factory.create();
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(AppURl).setPreviewImageUrl(previewImageUrl)
.build();
AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
appInviteDialog.registerCallback(sCallbackManager,
new FacebookCallback<AppInviteDialog.Result>() {
@Override
public void onSuccess(AppInviteDialog.Result result) {
Log.d("Invitation", "Invitation Sent Successfully");
finish();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
Log.d("Invitation", "Error Occured");
}
});
appInviteDialog.show(content);
}
}
Ответ 3
Это может помочь кому-то с той же проблемой
Используйте этот код
private void InviteFbFriends()
{
String appLinkUrl, previewImageUrl;
appLinkUrl = "app url(create it from facebook)"; //your applink url
previewImageUrl = "image url";//your image url
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appLinkUrl)
.setPreviewImageUrl(previewImageUrl)
.build();
AppInviteDialog.show(this, content);
}
}
Примечание. ВЫ МОЖЕТЕ СМОТРЕТЬ ПРИГЛАШЕНИЕ ТОЛЬКО В УСТРОЙСТВАХ
Ответ 4
- Я также интегрирую app app api в приложение iOS. Я также сталкиваюсь с такой же проблемой, после внесения изменений в настройку приложения. Я получил уведомления со всех сторон.
- Как сказал г-н Асад в своем ответе, он не будет показывать в браузерах, что он говорит неправильно. Фактически, чтобы получить приглашение со всех сторон, мы должны сделать настройку для приложения для всех сторон следующим образом.
Из учетной записи разработчика выберите свое приложение и предоставите информацию для всех платформ, чтобы получать приглашения на всех сайтах ios, Android, Facebook и в Интернете. Если мы добавим настройку только для одной платформы, например, предоставим информацию только для уведомления об андроиде, будет отображаться на устройствах Android не на других форматах.
Ответ 5
В моем случае я не смог получить приглашение и увидеть их в приложении FB, потому что приложение FB находилось в режиме разработки (не вживую).
![введите описание изображения здесь]()