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://*.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); 
    } 
} 
+0

好,我觉得这是工作,但我得到了下面的错误,任何意见:{ “错误”:{ “消息”: “(#3503)\”{\ “property1 \”:\ “property2 \”, \“property3 \”:\“property4 \”} \“属性\”myObject \“的类型为\”Reference \“”,“type”:“OAuthException”,“code”:3503}}的无效值} – meanbunny 2012-04-01 18:24:02

+0

好吧,我显然只是格式化我的数据不正确,Open Graph是如此混乱,没有Android的例子。我会接受你的回答,然后发布我如何将Open Graph与此结合起来,一旦我得到它。 – meanbunny 2012-04-01 18:49:33

+0

阳光我仍然有这个麻烦你有什么见解?我仍然收到上述相同的错误。 – meanbunny 2012-04-24 03:38:49

查看wishlist example的完整示例。

为Android一个完整的例子是包括在内。该软件包包括要在服务器上上传的文件和一个自述文件,用于说明如何在打开的图形面板上设置所有内容。