首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android与Facebook的共享不起作用

Android与Facebook的共享不起作用
EN

Stack Overflow用户
提问于 2018-06-05 07:14:17
回答 2查看 753关注 0票数 2

我正在尝试共享内容URL并将其发送到facebook。我一直在遵循官方文档,我在年级中有依赖关系,我的Manifest文件中有以下内容

代码语言:javascript
复制
        <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登录我的应用程序。在我的代码中,我通过执行以下操作来调用共享内容

代码语言:javascript
复制
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()时,应用程序崩溃,并且得到一个空指针异常。

该内容绝对是一个对象,因为当我将其转换为我获得的字符串时,我会得到一个值

代码语言:javascript
复制
com.facebook.share.model.ShareLinkContent@c63dc77

我使用的是android 2.3.3版本,如果有任何帮助,我将不胜感激,因为我似乎不能理解我做错了什么。我也存储了一个密钥哈希表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-05 18:44:26

所以我找到了答案。

在我的on create中,我从未将以下内容添加到on create中

代码语言:javascript
复制
shareDialog = new ShareDialog(this);

这不在本教程中。对于使用本教程的所有其他用户,创建内容,然后在相同的功能中,在创建内容的位置下面创建内容添加

代码语言:javascript
复制
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);

共享内容

票数 0
EN

Stack Overflow用户

发布于 2018-06-05 08:58:09

在清单文件中:

代码语言:javascript
复制
<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>

我想你已经在你的清单上有互联网权限了。

然后试试这个:

代码语言:javascript
复制
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;

//在创建时

代码语言:javascript
复制
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

希望这能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档