Intereting Posts
Как я могу изменить рингтон в андроиде программно? Как справиться с эффектом Ripple на 9-patch и CardView и управлять состоянием селектора? Зарегистрируйтесь, используя G + (Google+), используя киви Можно ли использовать первичный ключ в текстовых полях в базе данных Android Android LockScreen Календарь, показывающий HOUR и MINUTE без начального нуля – Android Можно ли масштабировать и фокусировать с помощью OpenCV на Android? Возможно ли установить Eclipse IDE в Galaxy Tab? Вход для Linkedin для приложения Cordova Статический класс на Java (Android) – используйте или не используйте Android / Java: доступ к одному объекту DBite SQLite из нескольких действий Установите OnClick Listener на кнопку внутри просмотра списка в android Могу ли я проверять обновления подписки на Google Play полностью на сервере? Firebase Big query – Как получить данные из таблицы пользовательских событий Android Studio – библиотека модулей приложений + NDK

Как отправить ссылку на facebook из приложения Android с помощью FB API?

Я смотрю весь интернет и не могу найти, как отправить ссылку на конкретную картинку на стене facebook, используя fb sdk \ api.

Я знаю, что это часть кода, который мне нужно использовать:

Facebook facebookClient = new Facebook("fb_App_id"); Bundle parameters = new Bundle(); parameters.putString("message", "Test Photo"); parameters.putString("link", "https://www.google.com"); parameters.putString("picture", "link to some pictrue"); facebookClient.dialog(MainActivity.this, "stream.publish", parameters, new DialogListener() { @Override public void onFacebookError(FacebookError e) { // TODO Auto-generated method stub } @Override public void onError(DialogError e) { // TODO Auto-generated method stub } @Override public void onComplete(Bundle values) { // TODO Auto-generated method stub } @Override public void onCancel() { // TODO Auto-generated method stub } }); 

Когда я пытаюсь использовать этот код, я получаю ошибку «Источник не найден». Я думаю, что мне не хватает шага подключения \ проверки …

Как я могу заставить его работать?

Другое дело: если я использую FB SDK в своем личном приложении, которое я использую в Google Play, и это приложение БЕСПЛАТНО, но есть реклама на нем, можно ли использовать FB SDK в моем приложении?

Solutions Collecting From Web of "Как отправить ссылку на facebook из приложения Android с помощью FB API?"

Наконец я нашел, как это сделать.

Вам нужно объявить эти два:

 Facebook facebookClient; SharedPreferences mPrefs; 

В функции onCreate я инициализирую facebookClient с помощью facebook AppID.

Класс, который обедает sharebook, должен быть Activity

Есть три функции, которые я добавил в действие:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); facebookClient.authorizeCallback(requestCode, resultCode, data); } public void loginToFacebook() { mPrefs = getPreferences(MODE_PRIVATE); String access_token = mPrefs.getString("access_token", null); long expires = mPrefs.getLong("access_expires", 0); if (access_token != null) { facebookClient.setAccessToken(access_token); } if (expires != 0) { facebookClient.setAccessExpires(expires); } if (!facebookClient.isSessionValid()) { facebookClient.authorize(this, new String[] { "publish_stream" }, new DialogListener() { @Override public void onCancel() { // Function to handle cancel event } @Override public void onComplete(Bundle values) { // Function to handle complete event // Edit Preferences and update facebook acess_token SharedPreferences.Editor editor = mPrefs.edit(); editor.putString("access_token", facebookClient.getAccessToken()); editor.putLong("access_expires", facebookClient.getAccessExpires()); editor.commit(); postToWall(); } @Override public void onError(DialogError error) { // Function to handle error } @Override public void onFacebookError(FacebookError fberror) { // Function to handle Facebook errors } }); } } private void postToWall() { Bundle parameters = new Bundle(); parameters.putString("name", "Battery Monitor"); parameters.putString("link", "https://play.google.com/store/apps/details?id=com.ck.batterymonitor"); parameters.putString("picture", "link to the picture"); parameters.putString("display", "page"); // parameters.putString("app_id", "228476323938322"); facebookClient.dialog(MainActivity.this, "feed", parameters, new DialogListener() { @Override public void onFacebookError(FacebookError e) { // TODO Auto-generated method stub } @Override public void onError(DialogError e) { // TODO Auto-generated method stub } @Override public void onComplete(Bundle values) { // TODO Auto-generated method stub } @Override public void onCancel() { // TODO Auto-generated method stub } }); } 

И наконец:

  ImageButton facebookButton = (ImageButton) findViewById(R.id.button_FacebookShare); facebookButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { loginToFacebook(); if (facebookClient.isSessionValid()) { postToWall(); } } }); 

Он делает автоматический вход в facebook, а затем перемещает facebook share \ post dialog. Код был взят из этого урока

Я предполагаю, что ваша проблема в том, что вы используете поток stream.publish, который устарел:

Обратите внимание: мы в настоящее время устарели API REST, поэтому, если вы создаете новое приложение, вы не должны использовать эту функцию. Вместо этого используйте API-интерфейс Graph и POST-объект Post для соединения feed объекта User

Вместо этого сделайте следующее:

 facebookClient.dialog(MainActivity.this, "feed", parameters, new DialogListener() { ... });