gpt4 book ai didi

android - 如何使用 FB API 从 Android 应用程序在 Facebook 上发布链接?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:00 24 4
gpt4 key购买 nike

我查看了整个互联网,但找不到如何使用 fb sdk\api 在 facebook 墙上发布带有特定图片的链接。

我知道这是我需要使用的部分代码:

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

}
});

当我尝试使用此代码时,出现“找不到源”错误。我认为我缺少连接\验证步骤...

我怎样才能让它发挥作用?

另一件事:如果我在我在 Google Play 上分享的个人应用程序中使用 FB SDK,并且该应用程序是免费的但上面有广告,那么在我的应用程序中使用 FB SDK 是否合法?

最佳答案

终于找到了方法。

你需要声明这两个:

Facebook facebookClient;    
SharedPreferences mPrefs;

在 onCreate 函数中,我使用 facebook AppID 初始化 facebookClient。

加载facebook分享的类必须是Activity

我在 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 对话框。代码取自此 tutorial

关于android - 如何使用 FB API 从 Android 应用程序在 Facebook 上发布链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com