如何使用FBAPI在facebook上发布android应用程序的链接?
我浏览了所有的互联网,找不到如何使用fb sdk\api在facebook墙上发布特定图片的链接 我知道这是我需要使用的代码的一部分:如何使用FBAPI在facebook上发布android应用程序的链接?,android,facebook,share,Android,Facebook,Share,我浏览了所有的互联网,找不到如何使用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.googl
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是否合法?我猜您的问题在于您使用的路径不推荐使用: 请注意:我们正在弃用RESTAPI,因此如果 您正在构建一个新的应用程序,不应该使用此函数。 而是使用Graph API并将POST对象发布到
提要
用户对象的连接
而是这样做:
facebookClient.dialog(MainActivity.this, "feed", parameters, new DialogListener() {
...
});
最后我找到了怎么做 您需要声明这两个:
Facebook facebookClient;
SharedPreferences mPrefs;
在onCreate函数中,我使用facebook AppID初始化facebookClient
午餐facebook共享的课程必须是活动类
我在活动中添加了三个功能:
@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共享\发布对话框。
代码取自此您是否在facebook上注册了应用程序并获得了应用程序ID?如果是,您可以使用它。如果否,请参阅,而不是发送三个字符串,您可以在一个字符串中发送所有内容,格式可能重复“是”,我有应用程序ID。这不是重复,因为我不知道我还需要做什么…什么“mAsyncRunner”?在我的应用程序中使用这个SDK合法吗?你是只在facebook上发布文本还是照片和文本?我需要一些额外的自动化吗?还是别的什么?或者我可以只使用对话框功能?我的FB窗口显示“未找到请求的页面”。哦,该死。我的坏,应该是
feed
而不是me/feed
。我会在我的回答中解决的。我已经发现了问题所在。现在,它显示了一个窗口,其中要求我登录或下载我已经拥有的android facebook应用程序…考虑到我拥有android facebook应用程序,并且我登录了该窗口,我如何避免该窗口?你是否已经通过了身份验证过程?如果它没有自动登录会发生什么?它是否要求用户登录然后发布?什么是不登录的回退方法?是的,它要求用户登录,现在不推荐使用。