if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ ?> } else { ?> } ?>
These are example requests for the 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 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 <?xml version="1.0" encoding="iso-8859-1"?> <methodCall> <methodName>wiki.getPageInfo</methodName> <params> <param> <value> <string>wiki:start</string> </value> </param> </params> </methodCall> 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!)