====== dokuwiki OAuth tests and examples ====== These are example requests for the [[dokuoauth|dokuwiki oauth plugin]]. You can access the DokuWiki OAuth API by making requests to ''doku.php?do[oauth]=XXX'' or simply by making //any// request adding the ''oauth_signature'' request-parameter. Get and install [[oss:oauth:start|oauth-utils]] for the command-line tool (''oauthsign'') used in this example. curl "http://example.org/doku.php?do\[oauth\]=addconsumer&consumer_key=key&consumer_secret=secret" oauthsign -x "http://example.org/doku.php?do=admin" key secret accesskey accesssecret Here's a script that walks through the complete oAuth Core 1.0 protocol: DW="http://localhost/dokuwiki/" DWOA="${DW}?do[oauth]=" DWRPC="${DW}lib/exe/xmlrpc.php" OAUTHSIGN=$(which oauthsign) CK="key" CS="secret" CU="" TOKENFILE=`mktemp /tmp/oauth.XXXXXXXXXX` || exit 1 function cleanup { rm $TOKENFILE; } trap cleanup EXIT echo " +++ add consumer." curl "${DW}?do\[oauth\]=addconsumer&consumer_key=${CK}&consumer_secret=${CS}&callback_url=${CU}" echo " +++ getting request token.." $OAUTHSIGN -X -f $TOKENFILE -w -e "${DWOA}requesttoken" "$CK" "$CS" \ || (echo " !!! no request token returned."; exit 1) || exit 1; echo " +++ Authorization." REQTOK=`cat $TOKENFILE | awk '/oauth_token_key=(.*)/{ print substr($1,17);}'` echo "visit ${DWOA}authorize&oauth_token=${REQTOK}" echo -n "to authorize this request token and press enter.." read echo " +++ exchanging request token for access token" $OAUTHSIGN -X -f $TOKENFILE -w "${DWOA}accesstoken" \ || (echo " !!! token exchange failed"; exit 1) || exit 1; echo " +++ making test request.." $OAUTHSIGN -x -f $TOKENFILE "${DW}?do=admin" \ | grep "Logged in as:" # || echo " !!! test request failed" echo " +++ performing XML-RPC.." curl --data-ascii @- -H "Content-Type: text/xml" \ `oauthsign -p -G -f $TOKENFILE ${DWRPC}` \ << EOF wiki.getPageInfo wiki:start EOF //Note//: Apache rewrite-rules modify the base-string! The query-parameters and URL must not be modified before they are passed to the PHP script (Using ''DirectoryIndex doku.php'' works, redirecting from index.php does not!) {{tag>development dokuplugin floss www}}