2010-02-11 6 views
13

मैं little web utility लिख रहा हूं जो ट्विटर और/या फेसबुक पर पोस्ट स्टेटस अपडेट करता है। इसमें एपीआई कुंजी और 'रहस्य' प्राप्त करने के लिए उन दोनों सेवाओं के साथ 'एप्लिकेशन' बनाना शामिल था।फेसबुक एपीआई रहस्य को उजागर करने में संभावित समस्याएं क्या हैं?

मेरा सवाल यह है कि मुझे वास्तव में उन रहस्यों को रखने की आवश्यकता है - इस पर काम करने के लिए, आपको ऐप को अपने खाते तक पहुंच प्रदान करने के लिए सेवा के प्रमाणीकरण हिस्से के साथ बातचीत करने के लिए रहस्य की आवश्यकता है और/या आपकी ओर से अपडेट पोस्ट करने की अनुमति दें। फेसबुक के दस्तावेज रहस्य की रक्षा करने के लिए कहते हैं, लेकिन कम से कम one other Facebook utility एपीआई कुंजी और स्रोत में रहस्य वितरित करता है।

यह ध्यान रखना महत्वपूर्ण है: यह आपका मानक फेसबुक 'एप्लिकेशन' नहीं है जो फेसबुक के संदर्भ में चलता है, न ही यह एक मानक "डेस्कटॉप" -स्टाइल संकलित ऐप है - यह एक वेब-आधारित एप्लिकेशन है अपने वेब सर्वर पर चलाएं। इसके लिए दर्शक शायद छोटे से औसत और कुछ अधिक परिष्कृत हैं - इसलिए, एक तकनीकी विकल्प लोगों को ऐप का उपयोग करने के लिए अपनी एपीआई कुंजी और गुप्त प्राप्त करने की आवश्यकता होगी। ऐसा लगता है कि यह बहुत सारे काम की तरह लगता है, और इसका उपयोग करने वाले किसी के लिए प्रवेश करने के लिए काफी बड़ी बाधा है।

किसी को पता है कि मुझे किस प्रकार की परेशानी है, मैं अपने एप के लिए कॉन्फ़िगरेशन में दोनों रहस्य और एपीआई कुंजी डालता हूं और इसे देखने के लिए पूरी दुनिया के लिए गिथब में जांचता हूं?

+0

+1 बहुत अच्छा प्रश्न पर जाएं – Sarfraz

उत्तर

8

कोई भी जिसके पास आपकी गुप्त कुंजी तक पहुंच है, आपके आवेदन पर पूर्ण नियंत्रण है। यह पृष्ठ उन सभी व्यवस्थापक सेटिंग्स को दिखाता है जिन्हें वे admin.setAppProperties API call के साथ बदल सकते हैं। इसमें एप्लिकेशन को डेवलपर मोड में डालने शामिल हो सकता है (इसलिए कोई और इसका उपयोग नहीं कर सकता), कॉलबैक यूआरएल (जो इसे तोड़ देगा) या सभी प्रकार के अन्य शरारत को बदल रहा है।

मुझे यकीन नहीं है कि मैं पूरी तरह से समझता हूं कि आप क्या करने की कोशिश कर रहे हैं, लेकिन मुझे लगता है कि यदि आप session secrets के लिए प्रलेखन को देखते हैं तो आपको एक ऐसा समाधान मिल सकता है जिसमें ऐप की गुप्त कुंजी को एम्बेड करने में शामिल न हो, लेकिन फिर भी उपयोगकर्ता एपीआई के साथ बातचीत करते हैं। सत्र रहस्य का उपयोग Facebook Connect द्वारा किया जाता है और एपीआई कॉल को बिना किसी एप्लिकेशन गुप्त के अनुमति दी जाती है। API calls that can be made with a session secret उपयोगकर्ता को केवल अपने डेटा के साथ बातचीत करने के लिए प्रतिबंधित है। स्थिति अपडेट करना और अनुमति देना देना निश्चित रूप से कुछ है जो आप सत्र रहस्य, कनेक्ट और XFBML के संयोजन के साथ कर सकते हैं।

और जैसा कि पॉल ने पहले से ही जवाब दिया है: अपना आवेदन रहस्य साझा करना फेसबुक की सेवा की शर्तों के खिलाफ है।

4

आप अपने अनुबंध का उल्लंघन करेंगे जो आपको फेसबुक एपीआई का उपयोग करने के लिए लाइसेंस देता है। उस समझौते का एक हिस्सा यह है कि आप अपना मुख्य रहस्य रखते हैं। यदि आप नहीं करते हैं, तो वे नियमों का पालन करने के लिए सहमत होने तक आपकी पहुंच अक्षम कर देंगे।

नीति III.7 बहुत स्पष्ट है:

आप किसी अन्य पार्टी के लिए अपने गुप्त कुंजी नहीं देना चाहिए जब तक कि पार्टी एक एजेंट अपने आवेदन के एक ऑपरेटर के रूप में अपनी ओर से अभिनय है, लेकिन आप कभी नहीं करना चाहिए एक विज्ञापन नेटवर्क के लिए अपनी गुप्त कुंजी दें। आप अपने खाते के पहचानकर्ताओं के अंतर्गत होने वाली सभी गतिविधियों के लिए ज़िम्मेदार हैं।

http://developers.facebook.com/policy/

अपने उपयोगकर्ताओं को एक एक API कुंजी प्राप्त करें, या अपने वास्तुकला पुनर्विचार। आप नहीं चाहते कि फेसबुक आपकी पहुंच को समाप्त कर दे, और एपीआई कुंजी के लिए साइन अप करना ईमानदारी से इतना काम नहीं है।

0

यदि आप दूसरों के लिए अपने वेब सर्वर पर उपयोग करने के लिए सॉफ़्टवेयर का एक टुकड़ा विकसित कर रहे हैं, तो प्रत्येक वेबसाइट जो इसका उपयोग करती है उसे एक अलग एप्लिकेशन के रूप में पंजीकृत होना चाहिए। इस प्रकार उपयोगकर्ता इसका उपयोग करने वाले सभी वेब सर्वरों तक पहुंच प्रदान करने के बजाय, आपके कोड के प्रत्येक उदाहरण को दी गई पहुंच को नियंत्रित करने में सक्षम होंगे।

नया ऐप बनाना कठिन नहीं है। बस http://www.facebook.com/developers/createapp.php

संबंधित मुद्दे