Android Facebook开放图?
我很好奇我是否能在OpenGraph上得到一些帮助,因为我似乎无法理解我读过的Facebook API 现在我已经在Facebook上安装了我的Open Graph应用程序。它已经被批准了。我试图通过bundle参数提交我的“对象”,但我很好奇如何设置bundle参数对象,如下所示。其中,myObject具有多个与其关联的值Android Facebook开放图?,android,facebook,facebook-opengraph,Android,Facebook,Facebook Opengraph,我很好奇我是否能在OpenGraph上得到一些帮助,因为我似乎无法理解我读过的Facebook API 现在我已经在Facebook上安装了我的Open Graph应用程序。它已经被批准了。我试图通过bundle参数提交我的“对象”,但我很好奇如何设置bundle参数对象,如下所示。其中,myObject具有多个与其关联的值 Bundle params = new Bundle(); param.putString("myObject", ""); // My object has multip
Bundle params = new Bundle();
param.putString("myObject", ""); // My object has multiple values
我想我真的需要弄清楚如何在Bundle中提交具有多个相关属性的内容。如果有人对此有任何见解,请帮助我
起初我试过这样的东西
Bundle myObject = new Bundle();
myObject("property1", "property1Value");
myObject("property2", "property2Value");
myObject("property3", "property3Value");
Bundle params = new Bundle();
params.putString("myObject", myObject);
但事后看来,我明白了为什么这行不通
编辑1
也许这会给我们一些启示。请记住,这是一个开放的图形操作,它不是图形API的一部分
//Build recipe
JSONObject recipe = new JSONObject();
recipe.put("type", "myappns:recipe");
recipe.put("recipe_name", "Thai Island");
recipe.put("cook_time", "1hr. 30min.");
//Build cookbook
JSONObject cookbookParams = new JSONObject();
cookbookParams.put("type", "myappns:book");
cookbookParams.put("title", "Hot & Spicy");
cookbookParams.put("description", "This book consists of hot & spicy foods");
cookbookParams.put("recipes", new JSONArray().put(recipe));
Bundle params = new Bundle();
params.putString("cookbook", cookbookParams.toString());
AsyncFacebookRunner request = new AsyncFacebookRunner(facebook);
request.request("me/myappns:used", params, "POST", new addToTimelineListener(), null);
这里有一个问题,尽管我一直在深入研究开放图形系统。我相信我需要在某个地方建立一个网站,对吗?通过OpenGraph的介绍性文档,我相信我可以在Android上创建和使用我的Facebook应用程序,而无需任何网站。也就是说,使用开放图形系统,我知道我可以使用该应用程序发布提要,而我没有成功完成的事情
再次感谢
编辑2
甚至不用担心回复,我明白我现在的问题是什么了……我必须在某个地方有一个网站,上面有一个Facebook应用程序,这些帖子也可以链接回来。很有道理,我还没有看到文档中关于这方面的内容非常直接……哦,现在我知道了。我使用此代码在墙上发布多个对象属性
private void publishPhoto(String imageURL) {
Log.d("FACEBOOK", "Post to Facebook!");
try {
JSONObject attachment = new JSONObject();
attachment.put("message",text);
attachment.put("name", "MyGreatAndroidAppTest");
attachment.put("href", "http://stackoverflow.com/users/909317/sunny");
attachment.put("description","Test Test TEst");
JSONObject media = new JSONObject();
media.put("type", "image");
media.put("src", imageURL);
media.put("href",imageURL);
attachment.put("media", new JSONArray().put(media));
JSONObject properties = new JSONObject();
JSONObject prop1 = new JSONObject();
prop1.put("text", "Text or captionText to Post");
prop1.put("href", imageURL);
properties.put(text, prop1);
// u can make any number of prop object and put on "properties" for ex: //prop2,prop3
attachment.put("properties", properties);
Log.d("FACEBOOK", attachment.toString());
Bundle params = new Bundle();
params.putString("attachment", attachment.toString());
facebook.dialog(MyProjectActivity.this, "stream.publish", params, new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
@Override
public void onComplete(Bundle values) {
final String postId = values.getString("post_id");
if (postId != null) {
Log.d("FACEBOOK", "Dialog Success! post_id=" + postId);
Toast.makeText(MyProjectActivity.this, "Successfully shared on Facebook!", Toast.LENGTH_LONG).show();
} else {
Log.d("FACEBOOK", "No wall post made");
}
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
} catch (JSONException e) {
Log.e("FACEBOOK", e.getLocalizedMessage(), e);
}
}
要查看完整的示例,请查看
其中包括一个完整的Android示例。该软件包包括要上传到服务器上的文件和一个自述文件,该文件解释了如何在打开的图形面板上设置所有内容。好的,我认为这是可行的,但我得到了以下错误,任何建议:{“错误”:{“消息”:“(#3503)\”{“属性1\”:“属性2\”,“属性3\:“属性4\”是无效的属性值\”myObject \“with type \“Reference\”,“type”:“OAuthException”,“code”:3503}}好吧,很明显我只是对数据的格式设置不正确,Open Graph非常混乱,没有Android的示例。我将接受你的回答,然后在我得到它后,发布我是如何将开放图与之结合的。Sunny,我仍然有这个问题,你有什么见解吗?我仍然会遇到上面同样的错误。@NagarjunaReddy请提出一个单独的问题,我会回答它。@Sunny请检查这里