web-dev-qa-db-ja.com

ノードを作成するためのセッション情報を使用してJSONデータを構築するにはどうすればよいですか?

Drupal 7およびサービスモジュール7.x-3.2を使用しています。 Postman for Chrome (httpクライアント)を使用してAPIをテストしています。

私がやりたいことは、ユーザーにログインし、DrupalサービスAPIを使用してユーザーでノードを作成することです。

JSON POST request to http://example.com/api/user/login を使用してユーザーにログインしました。

enter image description here

JSONの結果を取得しました。

{
    "sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
    "session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",
    "user": {
        "uid": "31",
        "name": "test_user",
        "mail": "[email protected]",
        "theme": "",
        "signature": "",
        "signature_format": "filtered_html",
        "created": "1352985941",
        "access": "1352991170",
        "login": 1352991510,
        "status": "1",
        "timezone": "",
        "language": "",
        "picture": null,
        "init": "[email protected]",
        "data": false,
        "roles": {
            "2": "authenticated user"
        },
        "rdf_mapping": {
            "rdftype": [
                "sioc:UserAccount"
            ],
            "name": {
                "predicates": [
                    "foaf:name"
                ]
            },
            "homepage": {
                "predicates": [
                    "foaf:page"
                ],
                "type": "rel"
            }
        }
    }
}

次に、JSON POSTリクエストを送信して、API経由で記事を作成しようとしました(ユーザーにはを作成する権限があります)Articleノード。)

enter image description here

401 Unauthorized応答を受け取りました。

ノードを作成するには、POSTリクエストを送信するためにセッションCookie情報を含める必要があると思います。

以前に返されたセッション情報があります。

"sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
"session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",

それをどのように利用して、JSON POST=ノード作成のリクエストを成功させることができますか?

11
gilzero
{
   "title": "Just another drupal Post",
   "type": "Article"
}

jsonが機能するように、type:articleタグの後にコンマがないことに注意してください。

2
Sunny Patel

これがあなたを助けることを願って、

  • HTTPリクエストを作成するには、Firefoxアドオン [〜#〜] poster [〜#〜] を使用します。

    enter image description here

    {
      "type" : "article",
      "title" : "Test article with language",
      "language" : "und"
    }
  • ノードが正常に作成されると、リンク付きの応答が返されます。

    enter image description here

  • 
    {
      "type": "article",
      "title": "Test article",
      "body": { 
        "und": [{ 
          "value": "test body!"
         }]
      },
      "language" : "und"
    }
    
    
    {
       "title":"Review",
       "type":"establishment_review",
       "field_establishment":[
          {
             "nid":{
                "nid":"[nid:26686]"
             }
          }
       ],
       "field_fivestar_value":[
          {
             "rating":"20",
             "target":"0"
          }
       ],
       "field_review":[
          {
             "value":"comments about the restaurant"
          }
       ]
    }
    
  • あなたは参照することができます this

  • 私は どうすればよいですかPOSTサービスモジュールを使用する新しいノード 質問です。詳細については、参照できます。

2
inizio