структура Coldfusion в аргументе функции - PullRequest
1 голос
/ 06 февраля 2012

Я пытаюсь подключиться к серверу на Facebook, но предоставленный 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 не составит труда, но, видимо, я что-то упустил.Что я делаю не так?

Часть 2: Код теперь останавливается по адресу:

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

Вам не разрешено использовать цикл for в cfscript

Ответы [ 2 ]

3 голосов
/ 06 февраля 2012

Попробуйте structNew () или "#structNew () #" вместо {}

1 голос
/ 07 февраля 2012

Это должно работать для подключения к Facebook и получения токена доступа:

<cfset appID = ""/>
<cfset secret_key = ""/>
<cfset app_url = ""/>


<cfparam name="URL.Code" default="0">
<cfparam name="URL.state" default="0">
<cfparam name="SESSION.Redirect" default="0">
<cfset code_ = URL.Code>


<cfif code_ EQ "" OR code_ EQ 0>
<cfset SESSION.State = Hash(CreateUUID(),"MD5")>
<cfset dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" & appID &      "&redirect_uri=" & app_url & "&scope=email,user_photos,publish_stream" & "&state=" &     SESSION.State>
<cflocation url="#dialog_url#" addtoken="no">
</cfif>

<cfif SESSION.State EQ URL.State>
<cfset token_url = "https://graph.facebook.com/oauth/access_token?client_id=" & appID & "&redirect_uri=" & app_url & "&client_secret=" & secret_key & "&code=" & code_>

<cfhttp url="#token_url#" result="AccessToken" method="GET">

<cfelse>
<p>The state does not match. You may be a victim of CSRF.</p>
</cfif>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...