首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在AndroidSDK4.0中将自定义故事直接发布到用户的Facebook墙上?

如何在AndroidSDK4.0中将自定义故事直接发布到用户的Facebook墙上?
EN

Stack Overflow用户
提问于 2015-04-22 00:50:35
回答 1查看 392关注 0票数 1

在不使用共享对话框的情况下,我很难让我的自定义故事直接发布到人的墙上,并且无法在新的SDK中找到关于如何做这种事情的示例或适当的文档(Facebook网站上的Graph上的大部分文档似乎已经过时了……)这个人此时已经登录到Facebook上,已经允许该应用发布,并点击一个按钮来分享他们使用该应用程序进行社交活动的故事。

目前,我的代码设法创建并执行了一个GraphRequest,其中包含了有关对象和操作的信息,该信息没有错误地返回到它的回调,并给出了一个返回代码为200(OK)的响应,并给出了其中的一个“id”号,我认为这表明了一个成功的帖子,但是这个故事并没有被挂在墙上。

我还看到,我在请求中发送的对象是在我访问站点并在对象浏览器中查看我的应用程序时创建的。我在请求中发送的所有细节都正确地显示在那里.我确信我将请求发布到了正确的图形路径上,我的AccessToken是有效的,应用程序具有正确的publish_actions权限,我很确定我给出了操作所期望的参数(至少,object参数看起来是有效的,并且使用正确的名称作为它的键,因为发布的对象和我没有得到关于丢失my_object参数的错误信息……)

这是我的代码(名称空间、对象和操作名称都被更改了,但是它应该不会对当前的问题产生影响):

代码语言:javascript
运行
复制
// Create object
JSONObject myObject=new JSONObject();
try {
    myObject.put("og:type", "my_namespace:my_object");
    myObject.put("og:title", facebookStoryTitle);
    myObject.put("og:description", facebookStoryDescription);
    myObject.put("place:location:latitude", facebookPlaceLat);
    myObject.put("place:location:longitude", facebookPlaceLon);
} catch (JSONException e) {
    String toastText = "JSON Error: " + e.getMessage();
    Toast.makeText(getApplicationContext(), toastText, 
        Toast.LENGTH_SHORT).show();
    return;
}

// Create action
Bundle params = new Bundle();
params.putInt("expires_in", facebookStoryExpires);
params.putString("my_object", myObject.toString());

// Create request
GraphRequest request = new GraphRequest(AccessToken.getCurrentAccessToken(), 
    "me/my_namespace:my_action", params, HttpMethod.POST, 
    new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {

        FacebookRequestError error = response.getError();
        if (error != null) {
            // Display User Error Message
            String toastText = error.getErrorUserMessage(); 
            Toast.makeText(getApplicationContext(), toastText,
            Toast.LENGTH_LONG).show();
            return;             
        } else {
            // DEBUG: Display Response
            String toastText = response.toString(); 
            Toast.makeText(getApplicationContext(), toastText,
            Toast.LENGTH_LONG).show();
            return;                                 
        }
    }
});

// Send Request
request.executeAsync();     
EN

Stack Overflow用户

回答已采纳

发布于 2015-07-01 19:35:49

你必须让params.putString("fb:explicitly_shared", true);在时间线上显示帖子。

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

https://stackoverflow.com/questions/29785801

复制
相关文章

相似问题

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