如何在Android中使用Graph api实现Facebook Like功能



我需要在我的小部件应用程序中实现Facebook Like功能。为此,我正在尝试从SDK compile 'com.facebook.android:facebook-android-sdk:4.0.1'实现Facebook LikeView。但不幸的是,我不能使用此视图,因为小部件使用远程视图。所以我完全坚持使用Graph api来实现Facebook Like 的方法,因为缺乏用于此目的的文档。我正在发布我用于Facebook

的代码,如下所示

主活动.java

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LikeView likeView = (LikeView) findViewById(R.id.likeView);
        likeView.setLikeViewStyle(LikeView.Style.STANDARD);
        likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
        likeView.setObjectIdAndType(
                "https://www.facebook.com/JavaDigest/",
                LikeView.ObjectType.OPEN_GRAPH);
    }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.facebooklike.MainActivity">
    <com.facebook.share.widget.LikeView
        android:id="@+id/likeView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
</RelativeLayout>

安卓清单.xml

<meta-data
        android:name="com.facebook.sdk.ApplicationName"
        android:value="@string/app_name" />
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />
    <provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.app.FacebookContentProvider2XXXXXXXXXXX85"
        android:exported="true" />

任何对我非常有帮助的帮助和替代解决方案。提前谢谢。

我还实现了类似Facebook的功能,它也成功地为我提供了LikeView.ObjectType.OPEN_GRAPH。

这是一个带有详细说明的代码

在主活动中定义它

CallbackManager callbackManager;
LikeView likeView;

创建方法的主要活动

callbackManager = CallbackManager.Factory.create();
likeView = (LikeView) findViewById(R.id.likeview);
likeView.setLikeViewStyle(LikeView.Style.BOX_COUNT);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType(
            "http://shareitexampleapp.parseapp.com/photo1/",
             LikeView.ObjectType.OPEN_GRAPH);

在你的主活动添加活动结果方法

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     callbackManager.onActivityResult(requestCode, resultCode, data);
 }

安卓清单.xml

 <meta-data
     android:name="com.facebook.sdk.ApplicationId"
     android:value="@string/FacebookId" />

和从清单中删除提供程序

//Remove this provider
<provider
     android:name="com.facebook.FacebookContentProvider"
     android:authorities="com.facebook.app.FacebookContentProvider2XXXXXXXXXXX85"
     android:exported="true" />

最新更新