سؤال

لقد اختبرت Twitter وLinkedIn ويبدو أنني قادر على تشغيلهما في نهاية المطاف، لكن لا يمكنني العثور على ما يكفي من المواد لتشغيل موصلات Google.عند استخدام موصل تقويم Google، أحاول جمع الرمز المميز باستخدام - #[flowVars['tokenId']] ولكن القيمة تأتي دائما كما null.أفعل شيئا خاطئا؟يمكن للشخص الرجاء المساعدة؟

شكرًا،

رماد.

هل كانت مفيدة؟

المحلول

أجبت على سؤالي الخاص لأي شخص آخر يعاني من نفس المشكلة -

إدارة رموز OAuth (اختياري)

تكوين مخزن الكائنات

للحفاظ على استمرارية البيانات، تحتاج إلى تخزينها في مكان ما، ومن المستحسن استخدام ObjectStore لهذا الغرض.قم بتثبيت موصل ObjectStore.قم بتكوينه بهذه الطريقة في تطبيقك:

<objectstore:config name="ObjectStore" doc:name="ObjectStore" />

تخزين الرموز بعد الترخيص

بعد الانتهاء من عملية التفويض، يصبح AccessTokenId للخدمة التي تستدعيها متاحًا كمتغير تدفق يسمى OAuthAccessTokenId.يجب عليك الاحتفاظ بهذا المعرف حتى تتمكن من استخدامه في الاستدعاءات المستقبلية للموصل الخاص بك.يوضح هذا المثال كيفية تخزين هذا المتغير في ObjectStore تحت مفتاح AccessTokenId.

<flow name="authorize-google" doc:name="authorize-google">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="authorize" doc:name="HTTP"/>
        <google-contacts:authorize config-ref="Google_Contacts" doc:name="Authorize GContacts"/>
        <objectstore:store config-ref="ObjectStore" key="accessTokenId" value-ref="#[flowVars['OAuthAccessTokenId']]" overwrite="true" doc:name="ObjectStore"/>    
</flow>

استخدام رمز الوصول الخاص بك

يجب أن يقوم أي استدعاء للموصل الخاص بك بتحميل رمز الوصول من ObjectStore والإشارة إليه.يوضح هذا المثال تحميله من ObjectStore والتحقق مما إذا كان قد تم تعيينه قبل المتابعة.

<enricher target="#[flowVars['accessTokenId']]" doc:name="Message Enricher">
            <objectstore:retrieve config-ref="ObjectStore" key="accessTokenId" defaultValue-ref="#['']" doc:name="Get AccessToken"/>
</enricher>
<expression-filter expression="#[flowVars['accessTokenId'] != '']" doc:name="Is Access Token Set"/>

بمجرد توفر AccessTokenId كمتغير تدفق، يمكنك الرجوع إليه في عمليات الموصل الخاصة بك:

<google-contacts:get-contacts config-ref="Google_Contacts" accessTokenId="#[flowVars['accessTokenId']]" />

مزيد من التفاصيل هنا - http://www.mulesoft.org/documentation/display/34X/Using+a+Connector+to+Access+an+OAuth+API

وهنا كيف يبدو في الاستوديو - http://imgur.com/DtLodel

شكرًا،

رماد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top