2014-09-03 2 views
0

Мне нужно мое клиентское приложение Java (Swing), чтобы иметь возможность публиковать сообщение (со ссылкой и рисунком) в профиле пользователя facebook (что требует от пользователя входа в систему Facebook и разрешить публикацию).Лучший подход для Java-клиента для публикации на facebook

Я вижу 3 варианта:

  1. использование сделать из RestFB API непосредственно из Java. Но я не понимаю, как мое приложение будет взаимодействовать с интернет-браузером (например, для входа пользователя в facebook).
  2. Попросите приложение java открыть браузер на веб-сайте приложений (мой PHP-сервер) и использовать PHP SDK от Facebook (но этот случай имеет недостаток в создании дополнительной нагрузки на моем сервере)
  3. Такой же подход, чем (2), но используйте Javascript SDK от Facebook (в этом случае я не уверен, как опубликовать изображение, которое хранится локально).

Из того, что я понял до сих пор, вариант (3) кажется самым простым (загрузка на сервере, не требуется токена приложения и т. д.).

Но поскольку я новичок во всем этом, я ищу некоторые рекомендации относительно того, каким будет самый простой подход.

Большое спасибо, Томас

ответ

0

я рекомендую использовать API RestFB, он был разработан для того, что вам нужно.

Для входа в систему, вам нужно создать приложение Facebook и использовать его, чтобы получить OAuth маркеры для пользователей, документация: https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.1

Вот полная документация: http://restfb.com/

Поскольку вы используете свинг , вам придется открыть браузер, попробуйте этот фрагмент кода:

public static void openWebpage(URI uri) { 
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; 
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { 
     try { 
      desktop.browse(uri); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

public static void openWebpage(URL url) { 
    try { 
     openWebpage(url.toURI()); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
    } 
} 

Или вы можете использовать этот другой подход: http://java.dzone.com/articles/web-browser-your-java-swing

---- Отредактировано ----

Поскольку вам нужно будет создать другое приложение, чтобы получить токен, это не будет проблемой. Ваше приложение для разворота вызывает веб-приложение для входа. Внутри него, вы будете иметь некоторый код, как это:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    console.log(response.authResponse.accessToken); 
    } 
}); 

То есть маркер, вы можете сохранить его во временный файл, или отправить его на качели применения во многих отношениях.

+0

Спасибо, но как RestFB откроет веб-браузер, если пользователю необходимо войти в Facebook и дать разрешение на мое приложение? Для меня это действительно непонятно. Thx – Tom

+0

Я отредактировал, может быть, сейчас лучше –

+0

Спасибо большое, но я до сих пор не понимаю, как RestFB сможет общаться с браузером, чтобы получить токен авторизации для публикации (ему также необходимо получить идентификатор facebook пользователя из браузер)? – Tom

Смежные вопросы