仅当设置 opengraphobject.setproperty("og:url") 时,Facebook SDK 无法为用户生成预览

2023-12-26

我有一个应用程序,我想在 Facebook 上分享历史记录。我的应用程序没有网络。我只想分享带有标题和描述的图像,如果有可能,当点击共享网站时,他们会重定向到 google play 下载应用程序或 Facebook 应用程序页面。

我在大多数 Facebook 样本中寻找答案,但这里肯定有一些我做错了的事情。 我做了所有 facebook 应用程序配置。密钥哈希等...我在开放图中创建了一个名为 Publicar a Lugar 的历史记录。动作=“公共”对象=“Lugar”。

我有这个代码

private void OpenShareDialog(){
    Session session = Session.getActiveSession();

    if (session != null) {
        // Check for publish permissions
        List<String> permissions = session.getPermissions();
        if (!isSubsetOf(PERMISSIONS, permissions)) {
            pendingPublishReauthorization = true;
            Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS);
            session.requestNewPublishPermissions(newPermissionsRequest);
            return;
        }

    }

    OpenGraphObject oplugar = OpenGraphObject.Factory.createForPost("namespace:lugar");
    oplugar.setProperty("og:type","namespace:lugar");
    oplugar.setProperty("og:title", LugarCargado.getNombre());
    //oplugar.setProperty("og:image", "http://estaticos.sport.es/resources/jpg/2/1/1391546433412.jpg");
    //oplugar.setProperty("og:url", "http://www.udg.edu/");
    oplugar.setProperty("og:description", LugarCargado.getDescripcion());

    //Bitmap bitmap;    
    //List<Bitmap> bitmaps = new ArrayList<Bitmap>();
    //bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.icoappfacebook2);
    //Log.i(TAG, "Imagen: Height:"+bitmap.getHeight()+ " Width:"+ bitmap.getWidth());
    //bitmaps.add(bitmap);

    //OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
    OpenGraphAction action = OpenGraphAction.Factory.createForPost("namespace:publicar");
    action.setProperty("lugar", oplugar);
    action.setType("namespace:publicar");
    action.setProperty("previewPropertyName", oplugar);

    FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "lugar")
            //.setImageAttachmentsForObject("lugar", bitmaps, true)
            //.setImageAttachmentsForAction(bitmaps,true);
            .build();

    uiHelper.trackPendingDialogCall(shareDialog.present()); 
}

我在智能手机中调试时遇到两个不同的错误:

1-如果我取消注释其中一行

//oplugar.setProperty("og:image", "http://estaticos.sport.es/resources/jpg/2/1/1391546433412.jpg");
//oplugar.setProperty("og:url", "http://www.udg.edu/");

我有一个错误,显示“com.facebook.FacebookException:无法为用户生成预览。”。我无法输入网址

2-如果我想添加自定义图像。如果我取消注释这段代码

//Bitmap bitmap;    
    //List<Bitmap> bitmaps = new ArrayList<Bitmap>();
    //bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.icoappfacebook2);
    //Log.i(TAG, "Imagen: Height:"+bitmap.getHeight()+ " Width:"+ bitmap.getWidth());
    //bitmaps.add(bitmap);

and

//.setImageAttachmentsForAction(bitmaps,true);

我有一个黑色的窗口,似乎有什么东西重新启动了......

02-08 15:09:46.500: W/GAV3(15911): 线程[GAThread,5,main]: 服务不可用(代码=1), 将重试。 02-08 15:09:46.500: I/GAV3(15911): 线程[GAThread,5,main]: 否 找到活动数据。 02-08 15:09:48.482:D/AbsListView(15911): unregisterIRListener() 被调用为 02-08 15:09:48.982: D/AbsListView(15911): onVisibilityChanged() 被调用,可见性:4 02-08 15:09:48.982: D/AbsListView(15911): unregisterIRListener() 是 调用 02-08 15:09:51.525: W/GAV3(15911): 线程[服务 重新连接,5,main]:服务不可用(代码=1),使用本地存储。 02-08 15:09:53.778:D/AbsListView(16092):获取 MotionRecognitionManager 02-08 15:09:53.778:D/AbsListView(16092):onVisibilityChanged()是 调用,可见性:8 02-08 15:09:53.778:D/AbsListView(16092): unregisterIRListener() 被调用为 02-08 15:09:53.788: D/进度条(16092):setProgress = 0 02-08 15:09:53.788: D/ProgressBar(16092): setProgress = 0, fromUser = false 02-08 15:09:53.788: D/ProgressBar(16092): mProgress = 0m不确定 = 假,mMin = 0,mMax = 10000 02-08 15:09:53.828: D/AbsListView(16092): onVisibilityChanged() 被调用,可见性:4 02-08 15:09:53.828: D/AbsListView(16092): unregisterIRListener() 是 称为 02-08 15:09:53.838: D/AbsListView(16092): onVisibilityChanged() 被调用,可见性:0 02-08 15:09:53.838: D/AbsListView(16092): unregisterIRListener() 被调用 02-08 15:09:53.848:D/libEGL(16092):已加载 /system/lib/egl/libEGL_adreno200.so 02-08 15:09:53.858: D/libEGL(16092): 已加载 /system/lib/egl/libGLESv1_CM_adreno200.so 02-08 15:09:53.858:D/libEGL(16092):已加载 /system/lib/egl/libGLESv2_adreno200.so 02-08 15:09:53.858: I/Adreno200-EGL(16092): : EGL 1.4 高通构建:

AYELDER_AU_LINUX_ANDROID_JB_2.5.5.04.02.02.092.023+PATCH[ES]_msm8960_JB_2.5.5_CL3556704_release_ENGG (CL3556704) 02-08 15:09:53.858: I/Adreno200-EGL(16092) ): 构建日期: 2013 年 5 月 17 日星期五 02-08 15:09:53.858:I/Adreno200-EGL(16092):本地分支: 02-08 15:09:53.858:I/Adreno200-EGL(16092):远程分支: quic/jb_2.5.5 02-08 15:09:53.858:I/Adreno200-EGL(16092):本地 补丁:34c9e193f12610d3e68dabd6198d2c4bfbc66974 RB:更新 掌握

rb_texture_update_aliased 02-08 中 hw_image 的时间戳 15:09:53.858:I/Adreno200-EGL(16092):重建分支: AU_LINUX_ANDROID_JB_2.5.5.04.02.02.092.023 + 01d3c78 +

e6f0547 + LOCAL_PATCH[ES] 02-08 15:09:53.878: D/OpenGLRenderer(16092): 启用调试模式 0 02-08 15:09:53.878: D/ProgressBar(16092): updateDrawableBounds: left = 0 02-08 15:09:53.878:D/ProgressBar(16092):updateDrawableBounds:顶部= 0 02-08 15:09:53.878:D/ProgressBar(16092):updateDrawableBounds:右 = 72 02-08 15:09:53.878: D/ProgressBar(16092): updateDrawableBounds: 底部 = 72 02-08 15:09:54.058: I/System(16092): 加载时区 en 的名称需要 217 毫秒(ICU 中为 205 毫秒)02-08 15:09:54.088: D/AbsListView(16092):调用 onVisibilityChanged(),可见性:0 02-08 15:09:54.088: D/AbsListView(16092): unregisterIRListener() 是 称为 02-08 15:09:54.168: D/AbsListView(16092): unregisterIRListener() 被调用为 02-08 15:09:54.178: D/AbsListView(16092): unregisterIRListener() 被调用 02-08 15:09:54.188:E / ViewRootImpl(16092):sendUserActionEvent()mView == 空02-08 15:09:54.268:D / AbsListView(16092):unregisterIRListener() 被称为 02-08 15:09:58.833:​​ W/GAV3(16092): Thread[GAThread,5,main]: 服务不可用(代码=1),将重试。 02-08 15:09:58.833: I/GAV3(16092):线程[GAThread,5,main]:未找到活动数据。 02-08 15:10:03.838:W/GAV3(16092):线程[服务重新连接,5,主要]:服务 不可用(代码=1),使用本地存储。 02-08 15:10:10.565: D/AbsListView(16092):调用 unregisterIRListener()

并显示之前的活动。

通过上面的代码,sharedialog 向我显示了 facebook 对话框,我可以分享。但没有链接,也没有我的图片。

你能帮助我吗?我尝试了很多不同的事情!

这是我的智能手机?脸书版本?

您是否有一个简单的示例来在共享对话框中共享带有描述的自定义(为用户制作)图像?

谢谢并抱歉我的英语。


如果您没有 Web 组件,则不要在 og 对象中设置 url。如果您设置了一个网址,Facebook 将尝试抓取该网址,如果从那里抓取的 OG 元数据与您提供的内容不匹配,那么它将失败。

如果要向 OG 操作添加位图,除了当前正在执行的操作之外,还必须向清单添加 NativeAppCallContentProvider。请参阅此处的文档:https://developers.facebook.com/docs/reference/android/current/class/NativeAppCallContentProvider/ https://developers.facebook.com/docs/reference/android/current/class/NativeAppCallContentProvider/这就是 Facebook 应用程序实际获取您尝试发送的位图的方式。

最后,看一下 sdk 附带的 Scrumptious 示例应用程序。它有一个选项(如果您“跳过登录”)可以创建一个带有图像附件的新 OG 对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当设置 opengraphobject.setproperty("og:url") 时,Facebook SDK 无法为用户生成预览 的相关文章

随机推荐