Android Facebook SDK 3.0 无需显式登录即可简单更新状态?

2023-12-20

我想知道更新用户 Facebook 状态的最简单方法。我想简单地显示一个“共享”按钮。当用户触摸“共享”时:

  1. 如果他们已经登录 Facebook,则会出现一个对话框,让他们可以选择在提交到 Facebook 之前编辑自己的帖子。

  2. 如果他们尚未登录 Facebook,系统将提示登录,然后在成功登录后自动显示共享对话框。

有没有一种简单的方法可以做到这一点,或者我是否需要实现单独的 Facebook 登录流程?


所以我想我有一个非常干净的方法来做到这一点。我欢迎任何评论。

我正在发布我的整个 Facebook Manager 类,它负责登录并打开提要对话框:

public class ManagerFacebook
{
    private Activity mActivity;

    public void updateStatus(final String name, final String caption, final String description, final String link, final String urlPicture,
        final Activity activity, final ListenerShareFacebook listenerShareFacebook)
    {
        mActivity = activity;

        // start Facebook Login
        Session.openActiveSession(activity, true, new Session.StatusCallback()
        {
            // callback when session changes state
            public void call(final Session session, SessionState state, Exception exception)
            {
                if (session.isOpened())
                {
                    publishFeedDialog(name, caption, description, link, urlPicture, listenerShareFacebook);
                }

            }
        });
    }

    private void publishFeedDialog(String name, String caption, String description, String link, String urlPicture,
        final ListenerShareFacebook listenerShareFacebook)
    {
        Bundle params = new Bundle();
        params.putString("name", name);
        params.putString("caption", caption);
        params.putString("description", description);
        params.putString("link", link);
        params.putString("picture", urlPicture);

        Session session = Session.getActiveSession();

        WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(mActivity, session, params)).setOnCompleteListener(new OnCompleteListener()
        {
            public void onComplete(Bundle values, FacebookException error)
            {
                if (error == null)
                {
                    // When the story is posted, echo the success
                    // and the post Id.
                    final String postId = values.getString("post_id");
                    if (postId != null)
                    {
                        listenerShareFacebook.onShareFacebookSuccess();
                    }
                    else
                    {
                        // User clicked the Cancel button
                        listenerShareFacebook.onShareFacebookFailure("Publish cancelled");
                    }
                }
                else if (error instanceof FacebookOperationCanceledException)
                {
                    // User clicked the "x" button
                    listenerShareFacebook.onShareFacebookFailure("Publish cancelled");
                }
                else
                {
                    // Generic, ex: network error
                    listenerShareFacebook.onShareFacebookFailure("Error posting story");
                }
            }

        }).build();
        feedDialog.show();
    }
}

另外,上面引用的是我的监听器接口,这样我就可以通知我的 Activity Facebook 相关内容:

public interface ListenerShareFacebook
{
    void onShareFacebookSuccess();

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

Android Facebook SDK 3.0 无需显式登录即可简单更新状态? 的相关文章

随机推荐

  • 将数字字符串编码为缩短的字母数字字符串,然后再编码回来

    快问 我正在尝试在 Python 中查找或编写一个编码器 以通过使用大写和小写字母来缩短数字字符串 数字字符串看起来像这样 2012042516160867825914618150402102259146181504021022012042
  • 将应用程序上下文而不是活动上下文传递给视图

    Why use 活动背景虽然我们可以使用应用上下文加载和访问资源 意味着如果我使用应用上下文代替活动背景没有发生异常所以为什么使用活动背景 Example 在下面的例子中 如果我使用获取应用程序上下文 代替 this 活动内的指针onCre
  • 在命令行上向 PHP Unit 发送参数

    我想使用命令行向 PHP 单元发送参数 e g phpunit foo bar AllTests 我怎样才能做到这一点 我最接近实现目标的是使用以下内容
  • 在 Pyyaml 中,如何以块样式表示空字符串和列表?

    我添加了折叠字符串的代表 文字字符串 如中提到的Python 中是否有支持将长字符串转储为块文字或折叠块的 yaml 库 https stackoverflow com questions 6432605 any yaml librarie
  • Instagram API 无法找到有关私人档案的信息

    我的问题非常类似于this https stackoverflow com questions 23600510 instagram api getting feed of private user whom the authorised
  • 用于插件部署的 Eclipse 最小配置

    我现在正在开发eclipse插件 默认的 eclipse 下载包含很多我的插件不需要的插件 它会导致 eclipse 文件夹的大小大于所需的大小 所以我想知道是否有任何方法可以创建这样最小的 Eclipse 配置 以便它能够加载我的插件并且
  • protobuf-net 是否支持可为 null 的类型?

    是否可以在 protobuf net 中生成可为 null 的成员 message ProtoBuf1 optional Int32 databit 1 optional Nullable
  • 如何更改 Android 上文件选择器标题的外观?

    我想显示一个文件选择器来使用以下代码打开图像 Intent intent new Intent intent setType image intent setAction Intent ACTION GET CONTENT startAct
  • iPhone 中出现“无法在设备上上传 *.app”错误

    我在设备上上传应用程序时遇到错误 它确实安装了它 但无法上传它 我还想在设备上运行仪器工具 但当我运行时它什么也没有显示 任何面临同样问题的人 在更改配置文件和应用程序 ID 后 我遇到了这个问题 是什么为我解决了这个问题 退出 XCode
  • 使用嵌套对象访问 jsonpath 元素

    我希望从数组和对象的 JSON 路径中提取某些值 并使用这些值进行进一步处理 并且正在努力访问这些元素 这是 JSON 响应 od pair 7015400 8727100 buckets bucket C00 original 2 ava
  • Junit 中的远程 PhantomJS 驱动程序

    如何在 junit 中使用远程 phantomjs 驱动器配置 selenium 我一直在尝试寻找这方面的教程 但没有成功 我的目标是使用它在 spring mvc 中对我的单页应用程序进行测试 经过一番尝试和错误后 我得到了以下解决方案
  • 按住键盘输入时犹豫?

    有谁知道为什么当您按住键盘按键并尝试处理它时会有些犹豫 我正在 WinProc 中调用一个函数 当按住某个键时 该函数将移动屏幕上的图像 OpenGL 我按下它并得到一个响应 然后大约有 0 5 秒没有任何反应 然后它表现正常 每个 Win
  • JTable setCellRenderer 将文本字段格式化为最新?

    我有一个 SQLite 数据库 其日期存储为VARCHAR 年 月 日 例如 2013 01 25 我的查询从表中检索记录并将其显示为存储的状态 我需要显示VARCHAR数据在我的JTable如 2013 年 1 月 25 日星期五 我怀疑
  • Excel - 找到第n个匹配项

    我创建了一个 赞 来跟踪商品的库存 我正在查找 下一个可用日期是哪一天 我用索引匹配函数找到了答案 但问题是 对于每个订单 可以承诺什么 当我的运行总计未包含在下一个 库存到达 中时 如何找到 第二个 最佳匹配 下一个到达 也许是我想太多了
  • 用户会话和在同一台计算机上运行的两个 CakePHP 应用程序

    I have 2 CakePHP 应用程序在同一台机器上运行 它们都需要事先注册才能访问它们 用户首先看到的是登录表单 我意识到 当我登录其中一个应用程序时 我可以访问另一个 Web 应用程序 而不会被要求提供登录凭据 这是不正确的 在我的
  • 如果父 pom 具有 Java EE BOM 依赖项,是否应该在子 pom 中显式提及所有依赖项?

    在我们的项目中 我们有 REST 层 EJB 层和域 实体 层的单独模块 以下是对 REST 层的依赖
  • 如何在所有单元格周围的空白区域中接收 UICollectionView 上的触摸

    我有一个UICollectionView里面有不同的物品 当我点击一个项目时 我使用 void collectionView UICollectionView collectionView didSelectItemAtIndexPath
  • Three.js 实时动画

    我正在使用 Three js 并对一些对象进行动画处理 我使用 Three js 的 animate 函数对对象进行动画处理 基本上是这样的 function animate object position z 不幸的是 这被称为每个渲染帧
  • 一组三个字段的哈希码

    我有三个字段 即 Number1 Number2 Time 我正在尝试用 java 编写一个返回唯一哈希值的函数 long 需要是 hash 的返回类型 对于上述字段 然后 该哈希将用于存储与哈希集中上述字段相对应的数据库行 我是编写哈希代
  • Android Facebook SDK 3.0 无需显式登录即可简单更新状态?

    我想知道更新用户 Facebook 状态的最简单方法 我想简单地显示一个 共享 按钮 当用户触摸 共享 时 如果他们已经登录 Facebook 则会出现一个对话框 让他们可以选择在提交到 Facebook 之前编辑自己的帖子 如果他们尚未登