2016-12-06 5 views
1

「URIリダイレクトまたは欠落」を返す内のOAuth2フローを使用しました。これはGoogle Script OAuth2 libraryを使用してSmartsheet APIでOAuthフローを管理します。残念ながら、「リダイレクトURIが見つからないか無効です」が返されています。Googleのスクリプトライブラリは、私は複数のGoogleシート内で使用するカスタムGoogleのスクリプトライブラリを書いています

1つのスプレッドシートスクリプトでOAuth2フローがうまく機能していましたが、コードをライブラリに移動すると機能が停止しました。

はSmartsheetの開発者向けメニュー内更新にリダイレクトURIを行なったし、私は()URIが.getRedirectUriから返されたことを確認しSmartsheetのアプリ登録内の私のアプリに関連付けられたものでした。

ライブラリ内のコードの他の側面もうまくいき、シートに結びつけられたときと同じように動作しているという高い自信を与えてくれます。

ライブラリの目標は、SmartSheet APIにアクセスするために複数のシートから使用できるため、スマートシートの開発者メニュー内に独自のアプリ(固有のリダイレクトURIを持つ)を作成できないようにすることですこのコードを使用してください。

これは可能ですか?私はそれがリダイレクトURIが気に入らないのは間違っていますか?

+1

をあなたが '不足しているか、または無効URIをリダイレクト' というメッセージが表示さページに達し、REDIRECT_URIクエリ文字列のparamの値を行いますURLの.getRedirectUri()から返された値と一致しますか? – stmcallister

答えて

0

ライブラリを開発するとき、それはトークンのソースに依存しないことが最善です。一般的な設計パターンは、ユーザがあなたのライブラリがトークンを取得するために呼び出す関数を渡すようにすることです。これにより、ユーザはOAuthワークフローの実装方法と場所を選択できます。

myLibrary.gs

var tokenService_ = function(){return null}; 

function setTokenService(tokenService){ 
    tokenService_ = tokenService 
} 

//some hypothetical function in your library 
function getData(options){ 
    return fetchFromAPI(options,tokenService_()); 
} 

userCode.gs

function requestData(){ 
    myLibrary.setTokenService(function(){ return ScriptApp.getOAuthToken()}); 
    var data = myLibrary.getData("foo"); 
} 
関連する問題