関数引数のcoldfusion構造体

私はサーバー側のフェイスブック接続をしようとしているが、SDK(ここで取得する)を指定すると、次のエラーが発生します。

Invalid CFML construct found on line 523 at column 78.
ColdFusion was looking at the following text:

{

そして、なぜこのエラーを投げているのか説明していません。私はcfscriptがうまくいかないので、sdkが正しい構文を使用しているかどうかわかりませんが、関数の引数の構造体の中カッコで、この関数にエラーがスローされます。

private String function getUrl(String path = "", Struct parameters = {})
{
    var key = "";
    var resultUrl = "https://www.facebook.com/" & arguments.path;
    if (structCount(arguments.parameters)) {
        resultUrl = resultUrl & "?" & serializeQueryString(arguments.parameters);
    }
    return resultUrl;
}

私はsdkを使うことは頭がおかしくないと思っていたが、明らかに何かが欠けていると思っていた。 私は間違って何をしていますか?

Part 2: The code now comes to a halt at:

for (var propertyName in arguments.properties) {
        httpService.addParam(type="formField", name=propertyName, value=arguments.properties[propertyName]);
    }

cfscriptでforループを使用することはできませんか?

1
@ Kristian82:あなたが共有したいと思うなら、してください。私はスクリプトで作業することを習得すべきではないタグのほうが快適だからではありません。
追加された 著者 dreagan,
あなたはCFタグにもっと慣れていますか?私はそれを投稿したい場合、私はFacebookのドキュメントからCFMLにPHPのバージョンを変換しましたか?
追加された 著者 Kristian82,
CFでは、メソッドの引数の既定値をリテラル表記(配列または構造体)を使用して設定することはできません。 duncanが指摘したように、structNew()を使用する必要があります。
追加された 著者 jalpino,

2 答え

{}の代わりにstructNew()または "#structNew()#"を試してください

3
追加された
structNew()はエラーを回避するのに役立ちます(私の元の投稿を更新しました)が、今度はsdkの別の行にコードがハングアップします。私は真剣にこれがオンラインになる前にテストされているかどうか疑問に思っています。:誰かがsdkをテストして、恐ろしく間違ったことをしていないことを確認できましたか?
追加された 著者 dreagan,
私は今それを通り抜けたと思う、ありがとう!
追加された 著者 dreagan,
私はそれが 'for(arguments.propertiesのpropertyName)でなければならないと思います。'ではない(var.propertiesのvar propertyName) '
追加された 著者 duncan,
var キーワードのサポートは、 for bar(var foo in bar)がCF 9.0.1で追加されました
追加された 著者 Jared Beck,

これは、Facebookに接続してアクセストークンを取得する場合に有効です。





















The state does not match. You may be a victim of CSRF.

1
追加された
優れた、これは私が何がファイルに間違っていたかを理解するのに役立ちました.. ^^
追加された 著者 dreagan,