将对象参数传递给Facebook打开C#中的自定义动作

时间:2012-06-28 07:12:48

标签: c#-4.0 facebook-graph-api facebook-c#-sdk facebook-opengraph custom-action

我发布了facebook open graph api的自定义动作,我在facebook c#sdk的时间线上成功发布了该帖。

这是我的行动代码

curl -F 'access_token=AccessToken' \
     -F 'job=http://samples.ogp.me/476622222351784' \
        'https://graph.facebook.com/me/sajidap:apply'

这是我的目标代码

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# sajidap: http://ogp.me/ns/fb/sajidap#">
  <meta property="fb:app_id" content="APPID" /> 
  <meta property="og:type"   content="sajidap:job" /> 
  <meta property="og:url"    content="Put your own URL to the object here" /> 
  <meta property="og:title"  content="Sample Job" /> 
  <meta property="og:image"  content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png" /> 

我是以这种方式发帖的。

 var fb = new FacebookClient(AccessToken);
 var parameters = new Dictionary<string, object>
            {
              { "og:type", "sajidap:job"},
              { "og:url" , "http://www.google.com"},
              { "og:image", "http://www.theappdynamics.com/images/babafooka.jpg" },
              { "og:title" , "Arslan Job"},
              { "job" , "http://samples.ogp.me/476622222351784"}
            };

var Response = fb.post(me/NameSpace:ActionName,Parameters);

它在我的时间轴上发布了一个活动,但它显示的对象的样本活动就像这个网址http://samples.ogp.me/476622222351784

如何通过从C#动态传递参数来提供我自己的URL对象,图像和标题。 请指导我这件事

2 个答案:

答案 0 :(得分:2)

它的简单我做到了这一点。你有一个像这样的页面,其中包含你的Open graph标签。意思是它应该是你网络上的一些内容页面。

让我明白更多..就像我有一个餐厅,我正在卖一些鸡肉汉堡,我想做一个动作"Buy"意味着在Facebook,它应该像这样Arslan在链接上买鸡法律。

  1. 在此Arslan中是执行操作的用户
  2. 行动是buy
  3. And Object was chicken lawa
  4. 网址是我的下一页,其中包含所有打开的图表标记,以便在Feed中显示。
  5. 这是ASPX页面

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# myapp: http://ogp.me/ns/fb/myapp#"> // Your app name will be replaced with this "myapp"
      <title>Buy Falafeel</title>
      <meta property="fb:app_id" content="4735" />  // Your APP ID
      <meta property="og:type"   content="myapp:falafeel" /> // YourAppName:Action Type 
      <meta property="og:url"    content="http://demo.anything.net/buy.aspx" /> 
      <meta property="og:title"  content="Chicken Lawa Falafeel" /> 
      <meta property="og:image"  content="http://www.theappdynamics.com/images/babafooka.jpg" /> 
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
         This is Falafeel Page. Demo Demo......
        </div>
        </form>
    </body>
    </html>
    

    在这里,我正在执行按钮单击后面的操作。

    void PostAction(string URL, string Token, string Action, string objects)
        {
            var fb = new FacebookClient(Token);
    
            var parameters = new Dictionary<string, object>
                {
                  { objects ,  URL}
                };
    
            try
            {
                dynamic result = fb.Post("me/myapp:" + Action, parameters); // again here should be your app name instead of "myapp"
            }
            catch { }
        }
    
     PostAction("URL", "AccessToken", "Action", "Object"); // Here is The Above Method Call
    // Here is URL That URL Who Have Open Graph Tags Like we have created one page with tags named buy.aspx and it should be full link like "http://xyz.com/buy.aspx"
    //Access Token Of User On Behalf we are going to create This Action
    //Action The One Created On facebook App Setting Of OpenGraph Tag Like "Buy"
    //Object That We Also Created On Facebook App Setting For OpenGraph Like "ChickeLawa"
    

答案 1 :(得分:0)

只需将对象设置为对象的OG网址即可发布操作,如下所述:https://developers.facebook.com/docs/opengraph/actions/#create

将从URL的og:标签中提取任何其他内容(图片,标题等)。