Android Facebook Open Graph?
问题描述:
我很好奇,如果我可以得到一些开放图的帮助,因为我似乎没有任何意义,我已阅读的Facebook API。Android Facebook Open Graph?
现在我已经在Facebook上建立我的Open Graph应用。它已被批准。我试图通过bundle params提交我的“对象”,但我很好奇我是如何设置一个像以下这样的bundle param对象的。其中myObject具有与其关联的多个值。
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
这也许会提供一些线索。请记住,这是一个Open Graph操作,它不是Graph 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);
这是一个问题,因为我一直在深入挖掘Open Graph系统。我相信我需要在某个地方设置网站,这是否正确?我通过Open Graph的介绍性文档相信我可以在Android上创建和使用我的Facebook应用程序,而无需任何网站。这是使用Open Graph系统,我知道我可以使用该应用程序来发布提要,而不是我已经成功完成的。
再次感谢!
编辑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);
}
}
好,我觉得这是工作,但我得到了下面的错误,任何意见:{ “错误”:{ “消息”: “(#3503)\”{\ “property1 \”:\ “property2 \”, \“property3 \”:\“property4 \”} \“属性\”myObject \“的类型为\”Reference \“”,“type”:“OAuthException”,“code”:3503}}的无效值} – meanbunny 2012-04-01 18:24:02
好吧,我显然只是格式化我的数据不正确,Open Graph是如此混乱,没有Android的例子。我会接受你的回答,然后发布我如何将Open Graph与此结合起来,一旦我得到它。 – meanbunny 2012-04-01 18:49:33
阳光我仍然有这个麻烦你有什么见解?我仍然收到上述相同的错误。 – meanbunny 2012-04-24 03:38:49