我正在尝试共享内容URL并将其发送到facebook。我一直在遵循官方文档,我在年级中有依赖关系,我的Manifest文件中有以下内容
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<provider android:authorities="com.facebook.app.FacebookContentProvider247315745828416"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
</application>
我可以使用facebook登录我的应用程序。在我的代码中,我通过执行以下操作来调用共享内容
private void uploadToFacebook(){
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://developers.facebook.com"))
.build();
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);
toastMessage("Done");
}
当我在不使用shareDialog.show()的情况下运行代码时,会出现toast消息,但url不会发送到我的facebook主页。
当我包含shareDialog.show()时,应用程序崩溃,并且得到一个空指针异常。
该内容绝对是一个对象,因为当我将其转换为我获得的字符串时,我会得到一个值
com.facebook.share.model.ShareLinkContent@c63dc77
我使用的是android 2.3.3版本,如果有任何帮助,我将不胜感激,因为我似乎不能理解我做错了什么。我也存储了一个密钥哈希表。
发布于 2018-06-05 18:44:26
所以我找到了答案。
在我的on create中,我从未将以下内容添加到on create中
shareDialog = new ShareDialog(this);
这不在本教程中。对于使用本教程的所有其他用户,创建内容,然后在相同的功能中,在创建内容的位置下面创建内容添加
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);
共享内容
发布于 2018-06-05 08:58:09
在清单文件中:
<meta-data android:name="com.facebook.sdk.ApplicationName"
android:value="@string/app_name" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
我想你已经在你的清单上有互联网权限了。
然后试试这个:
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.LikeView;
import com.facebook.share.widget.ShareButton;
//在创建时
private ShareButton shareButton;
private ShareLinkContent content;
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
shareButton = (ShareButton) findViewById(R.id.sharing_button);
content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("your-url"))
.build();
shareButton.setShareContent(content);
这应该能解决这个问题。考虑到facebook sdk已经更新,从2018年2月5日开始,以前的一些功能可能会被弃用或无法工作。更多信息here。
希望这能帮上忙。
https://stackoverflow.com/questions/50689980
复制相似问题