Разместите изображение на facebook с Android, ссылка не работает, потому что facebook добавляет ?ref=nf к URL-адресу


Я очень расстроился, пытаясь опубликовать изображение диаграммы Google в facebook me/feed.
Изображение корзины создается динамически с помощью потенциально очень длинного URL-адреса. Я могу указать этот URL-адрес в ключе "изображение" в пакете, но если я попытаюсь поместить его в ключ "ссылка", я получу сообщение об ошибке, что он слишком длинный.
Если я только передам а "картинка" на миниатюре в ленте всегда пуста. Я попытался исправить эту проблему, преобразовав URL-адрес в тиниурл, за исключением того, что facebook всегда добавляет ?ref=nf в конец тиниурла и ломает его (ошибка 404, когда вы нажимаете на него, однако изображение видно на миниатюре ). Я нашел эту тему с другими пользователями, у которых возникла эта проблема:
http://forum.developers.facebook.net/viewtopic.php?id=40469
Вот мой код:

private void updateFacebookStatusImage()
{  
    String accessToken = FBSessionStore.getToken(this);
    Bundle bundle = new Bundle();
    bundle.putString("caption", this.fbUserComment);
    bundle.putString("description", this.fbMessage);

    try 
    {
        String tiny = BetBudHttpRequestor.getTinyUrl(this.fbImageURL);
        Log.d("IMAGE", tiny);
        bundle.putString("picture", tiny);
        bundle.putString("link", tiny);
    } 
    catch (ClientProtocolException e) 
    {
    } 
    catch (IOException e) 
    {
    }
    bundle.putString(Facebook.TOKEN, accessToken); 
    fbAsyncRunner.request("me/feed", bundle, "POST", new UpdateWallListener(), null);
    this.fbMessage = null;
    this.fbUserComment = null;
    this.fbImageURL = null;
}

Вот пример URL диаграммы Google:
http://chart.apis.google.com/chart?chf=bg,s,000000&chxt=x,y&chs=480x340&cht=lxy&chco=696969,E8EEF7&chls=3|3&chxl=0:|03:01+1ST|09:22+2ND|04:25+2ND|08:55+3RD|01:24+3RD|09:28+4TH|03:35+4TH|ФИНАЛ&chd=t:70|0,0,8,8,13,13,13,13,15,15,17,17,17,17,17,17,23,23,23,23,23,23,23,23,25,25,27,27,29,29,34,34,36,36,40,40,45,45,46,46,49,49,51,51,51,51,56,56,58,58,58,58,62,62,62,62,65,65,69,69,73,73,77,77,78,78,87,87,90,90|70|2,2,6,6,8,8,10,10,14,14,18,18,20,20,21,21,24,24,26,26,31,31,33,33,33,33,37,37,37,37,42,42,42,42,46,46,50,50,52,52,57,57,59,59,65,65,69,69,72,72,74,74,76,76,78,78,80,80,84,84,86,86,92,92,97,97,103,103,105,105&chdlp=b&chdl=Мемфис|Оклахома+Сити&chxr=1,0,105&chds=0,71,0,105,0,71,0,105&chm=B,4169e1,0,0:4,0|B,00FF00,0,4:6,0|B,4169e1,0,6:20,0|B,ffa500,0,20:32,0|B,4169e1,0,32:40,0|B,ffa500,0,40:64,0|B,FF0000,0,64:66,0|B,ffa500,0,66:68,0|B,FF0000,0,68:69,0
...и тиниурл:
http://tinyurl.com/3jnhp3k

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

Подведем итоги:
Если я отправляю полный URL-адрес только для ключа изображения:
Когда вы нажимаете на миниатюру, изображение загружается, однако миниатюра пуста.

Если я отправлю крошечный URL-адрес изображения или изображение и ссылку:
На миниатюре есть изображение, но ссылка не работает из-за ?ref=nf.

Спасибо, Стив


person steve    schedule 31.05.2011    source источник
comment
+1 Я рад, что вы опубликовали это, потому что принятое решение решило мою ту же проблему. Я перешел сюда с forum.developers.facebook.net/viewtopic. php?pid=348340#p348340 Судя по всему, facebook не очень стремится решить эту проблему для разработчиков, так как проблема существует уже 2 года!!   -  person John K    schedule 26.07.2011


Ответы (1)


Используйте другой сервис сокращения ссылок, например bit.ly. Я сомневаюсь, что Facebook перестанет добавлять источник перехода к ссылкам, поэтому сервисы и веб-сайты должны иметь возможность правильно обрабатывать параметры строки запроса. Во всяком случае, вы можете зарегистрировать ошибку с помощью tinyurl. Вот ссылка на bit.ly, которую я сгенерировал для вас, и она работает:

http://bit.ly/lj79is?ref=nf

person bkaid    schedule 31.05.2011
comment
bkaid, ты мужчина. Это работает, большое спасибо. Я никогда даже не слышал о bit.ly. - person steve; 01.06.2011
comment
+1 Да, это работает, промежуточный сервис сокращения URL-адресов bit.ly примет параметр ?ref=nf без кашля и разрешит полный URL-адрес без этого параметра - тогда жизнь для целевых серверов, которые не любят лишних или нежелательные параметры в строке запроса. - person John K; 26.07.2011
comment
Я не на платформе Android - This solution also works for PC web browsers и, вероятно, на других платформах. - person John K; 26.07.2011