#c# #android #facebook #xamarin
#c# #Android #Facebook #xamarin
Вопрос:
Я новичок в Xamarin, и я разрабатываю приложение на PCL (Xamarin.Формы), который включает в себя вход в систему и публикацию с помощью Facebook. Я использую плагин.FacebookClient для кросс-платформенной разработки. Я пытаюсь опубликовать картинку с подписью, независимо от того, установлено у меня приложение Facebook или нет, сообщение завершено, и я могу видеть сообщение из своего браузера (как друг учетной записи, которую я использовал для публикации). Мне нужно показать сообщение после публикации в моем приложении, но когда сообщение завершено, ничего не происходит. нет журналов, нет ответного сообщения. Когда сообщение было отменено или произошла ошибка, я получил журналы консоли и сообщение в моем приложении. Мой код для обмена:
private IFacebookClient _facebookService = CrossFacebookClient.Current;
private async Task<string> PostFb(byte[] data, string text)
{
try
{
string postMessage = string.Empty;
FacebookSharePhoto photo = new FacebookSharePhoto(text, data);
FacebookSharePhoto[] photos = new FacebookSharePhoto[] { photo };
FacebookSharePhotoContent photoContent = new FacebookSharePhotoContent(photos, null, text);
Console.WriteLine("Uploading...");
var result = await _facebookService.ShareAsync(photoContent);
_facebookService.OnSharing = (s, a) =>
{
switch (a.Status)
{
case FacebookActionStatus.Completed:
postMessage = "Completed";
break;
case FacebookActionStatus.Canceled:
postMessage = "Canceled";
break;
case FacebookActionStatus.Unauthorized:
postMessage = result.Message;
break;
case FacebookActionStatus.Error:
postMessage = result.Message;
break;
}
};
return postMessage;
}
catch (Exception ex)
{
Console.WriteLine("Post FB: " ex.ToString());
}
return "Something's wrong";
}
Я раньше не использовал обработчик событий, но все равно ничего не произошло. В try catch тоже ничего не отображается. Мое приложение не зависало, просто ничего не делало. Мой код для вызова этой функции:
string postFbmessage = await PostFb(imageArray, Message);
UserDialogs.Instance.Alert("FacebookPost message: " postFbmessage);
Console.WriteLine("FacebookPost message: " postFbmessage);
Я пробовал искать в проблемах GitHub, но там говорилось, что проблемы уже исправлены. Я удалил кэш приложения, очистил сборку, повторил попытку, но все равно ничего не произошло. Кто-нибудь может сказать мне, где что-то пошло не так? Прошу прощения за плохой английский, надеюсь, вы понимаете, что я имею в виду.
Редактировать: это был тот, где они уже объединили исправление. Спасибо, что напомнил мне, Джейсон
Комментарии:
1. «он сказал, что проблемы уже исправлены» — какая проблема? Если вы нашли, но, похоже, это связано, это помогает связать с этой конкретной проблемой, чтобы мы могли ее увидеть
2. @Jason Я отредактировал вопрос. Я понимаю проблему, поскольку получил то же самое, но все еще не знал, что делать, чтобы это исправить.
3. Это исправлено в предварительной версии nuget
Ответ №1:
Спасибо, Джейсон, что напомнил мне в разделе комментариев. Они исправили проблемы, но это все еще в предварительной версии. Я обновил свой пакет NuGet и никаких проблем.