我正在开发一些Facebook OAuth 2.0代码来修复当前插件。我已完成99%,但是当我将代码部署到Linux时,它不起作用(在Windows上开发)。Grails:JSON.parse()在Linux上的错误 - 在Windows上工作 - 难倒
我得到的错误是:
这个错误之前 Exception Message: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"} Caused by: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"}
权。我得到了同样的信息没有结束} 当我实际使用,如下面的代码破解:
if (!jsonData.trim().endsWith("}")) {
jsonData = jsonData + "}"
}
我不知道如何代码可以在Windows的工作方式不同比Linux。寻找想法。不确定它是否是编码?新的URL()。text? decodeBase64代码?思考?
String[] signedRequestParts = signedRequest.split('\\.')
// signedRequest gets deconstructed into a JSON packet
String jsonData = new String(Base64.decodeBase64(signedRequestParts[1].getBytes()), 'UTF-8')
// attempt at temporary hack fix
if (!jsonData.trim().endsWith("}")) {
jsonData = jsonData + "}"
}
def json = JSON.parse(jsonData) // I get that error on this line
def fbToken
if (json.code) {
def u = 'https://graph.facebook.com/oauth/access_token' +
'?client_id=' + applicationId + '&client_secret=' + secret +
'&redirect_uri=' + '&code=' + json.code
def content = new URL(u).text
fbToken = content.split("&")[0].split("=")[1];
}
其次,问题是Base64.decodeBase64缺少最后一个字符}。 – MJLefevre 2011-12-22 14:46:03