2016-07-26 9 views
0

ているとき、私はポストマン(Chromeの拡張機能)を使用してdrupalのにノードを作成するために、XML-RPCをテストし、成功してる提出されていません OKを受けて行わ。しかし、問題は「field_answer_with_image」と呼ばれる特定のフィールドは、私が作成したノードでまだ空白になっています。私は何かが私の構造に間違っていると思う。ここ はfield_answer_with_imageの分類です。 enter image description hereXML-RPC経由でのDrupalにノードを作成する場合は、イメージ・フィールドのパラメータは、他の人が

ここでノードを作成するための私のXML構造です。

<?xml version="1.0" encoding="UTF-8"?><methodCall> 
<methodName>node.create</methodName> 
<params> 
<param> 
<value> 
    <struct> 
    <member> 
    <name>field_category</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
     <array> 
     <data> 
     <value> 
      <string>23</string> 
     </value> 
     </data> 
     </array> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </member> 
    <member> 
    <name>field_email</name> 
    <value> 
    <string>[email protected]</string> 
    </value> 
    </member> 
    <member> 
    <name>body</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
    <array> 
    <data> 
    <value> 
    <struct> 
    <member> 
    <name>value</name> 
    <value> 
    <string>test yoo</string> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </member> 
    <member> 
    <name>type</name> 
    <value> 
    <string>question</string> 
    </value> 
    </member> 
    <member> 
    <name>field_answer_with_image</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
    <array> 
    <data> 
    <value> 
    <struct> 
    <member> 
    <name>filemime</name> 
    <value> 
    <string>image/jpeg</string> 
    </value> 
    </member> 
    <member> 
    <name> 
    title 
    </name> 
    <value> 
    <string> 
    </string> 
    </value> 
    </member> 
    <member> 
    <name>filename</name> 
    <value><string>GW_temp.jpeg</string></value> 
    </member> 
    <member> 
    <name>status</name> 
    <value><string>1</string></value> 
    </member> 
    <member> 
    <name>fid</name> 
    <value><string>1611</string></value> 
    </member> 
    <member> 
    <name>height</name> 
    <value><string></string></value></member> 
    <member> 
    <name>width</name><value><string></string></value></member><member> 
    <name>timestamp</name><value><string>1469009864</string></value></member><member> 
    <name>filesize</name><value><string>10664</string></value></member><member> 
    <name>uid</name><value><string>1543</string></value></member><member> 
    <name>alt</name><value><string></string></value></member><member> 
    <name>rdf_mapping</name><value><string></string></value></member><member> 
    <name>uri</name><value><string>public://GW_temp_1.jpeg</string></value></member> 
    </struct> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member></struct></value></member> 
    <member><name>field_name</name><value><string>cristy</string></value></member></struct></value></param> 

答えて

1

イメージを最初に作成してから、2番目の手順でファイルIDを使用してノードを作成する必要があります。

ステップ1:

<?xml version="1.0" encoding="UTF-8"?> 
<methodCall> 
    <methodName>file.create</methodName> 
    <params> 
     <param> 
     <value> 
      <struct> 
       <member> 
        <name>filename</name> 
        <value> 
        <string>Dummy.jpg</string> 
        </value> 
       </member> 
       <member> 
        <name>filesize</name> 
        <value> 
        <int>440048</int> 
        </value> 
       </member> 
       <member> 
        <name>file</name> 
        <value> 
        <string>$BASE64$</string> 
        </value> 
       </member> 
       <member> 
        <name>filepath</name> 
        <value> 
        <string>public://Dummy.jpg</string> 
        </value> 
       </member> 
      </struct> 
     </value> 
     </param> 
    </params> 
</methodCall> 

これはあなたの 'FID' フィールドを持つXML値を返します。一致する '値'の整数を探します。次に、ステップ2でノードを作成する

(FID = 170と仮定):

<?xml version="1.0" encoding="UTF-8"?> 
<methodCall> 
    <methodName>node.create</methodName> 
    <params> 
     <param> 
     <value> 
      <struct> 
       <member> 
        <name>type</name> 
        <value> 
        <string>dummy_content_type</string> 
        </value> 
       </member> 
       <member> 
        <name>title</name> 
        <value> 
        <string>Dummy&gt; 123456</string> 
        </value> 
       </member> 
       <member> 
        <name>field_dummy</name> 
        <value> 
        <struct> 
         <member> 
          <name>und</name> 
          <value> 
           <array> 
           <data> 
            <value> 
             <struct> 
              <member> 
              <name>type</name> 
              <value> 
               <string>image</string> 
              </value> 
              </member> 
              <member> 
              <name>fid</name> 
              <value> 
               <string>170</string> 
              </value> 
              </member> 
              <member> 
              <name>uid</name> 
              <value> 
               <string>1</string> 
              </value> 
              </member> 
              <member> 
              <name>filename</name> 
              <value> 
               <string>Dummy.jpg</string> 
              </value> 
              </member> 
              <member> 
              <name>filesize</name> 
              <value> 
               <string>44408</string> 
              </value> 
              </member> 
              <member> 
              <name>filepath</name> 
              <value> 
               <string>public://Dummy.jpg</string> 
              </value> 
              </member> 
             </struct> 
            </value> 
           </data> 
           </array> 
          </value> 
         </member> 
        </struct> 
        </value> 
       </member> 
      </struct> 
     </value> 
     </param> 
    </params> 
</methodCall> 

これは、以前のPOSTリクエストと同様に、ノードIDを返します。

のDrupal 7

で動作します
関連する問題