Плагин.FacebookClient ничего не делает после публикации в Facebook

#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 и никаких проблем.