क्या फेसबुक के हिस्सेदार.php अब विस्तृत मापदंडों को स्वीकार नहीं करता है?


103

हम जैसे URL के साथ एक साझाकरण पॉपअप (window.open के माध्यम से) खोल रहे हैं

https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE 

और पिछले महीने में कुछ अज्ञात बिंदु तक या सब कुछ ठीक था।

अभी जो हो रहा है, वह है; पॉपअप संवाद प्रकट होता है और क्वेरी स्ट्रिंग पैरामीटर द्वारा प्रदान किया गया शीर्षक, विवरण, चित्र और URL शामिल होता है, लेकिन जब पोस्ट सबमिट किया जाता है, तो फेसबुक पर परिणामी दीवार पोस्ट शीर्षक, विवरण और छवि को याद कर रही है, हालांकि यह अभी भी लिंक है सही URL।

क्या कोई जानता है कि अगर हाल ही में कुछ बदलाव हुए हैं जो अचानक इसे काम करने से रोक सकते हैं?

कुछ सामान्य प्रतिक्रियाओं को पूर्व-खाली करना:

  • "sharer.php URL को पदावनत कर दिया गया" - उपयोग जारी रहा और ऐसा लग रहा था कि सर्वसम्मति से यह माना जाता है कि इसे बड़े पैमाने पर चारों ओर चिपका हुआ माना जाता है - मैंने ऐसा कोई विशेष संकेत नहीं देखा है कि यह अचानक काम करना बंद कर दिया हो - शायद कुछ छूट गया हो

  • "जावास्क्रिप्ट एसडीके / इन ओजी मेटा टैग का उपयोग करें" - मेरी विशिष्ट स्थिति में संभव नहीं है - बस मुझ पर भरोसा करें ... मैं समझा सकता हूं कि क्या आप वास्तव में चाहते हैं लेकिन यह वास्तव में प्रासंगिक नहीं है।

  • "फ़ीड संवाद का उपयोग करें" - एफबी पृष्ठों पर संलग्नक के साथ पोस्ट करने के लिए समर्थन की कमी के कारण उपयुक्त नहीं है


किसी अन्य व्यक्ति द्वारा यहां फेसबुक बग को लॉग किया गया है। Developers.facebook.com/bugs/563991033677853 इसलिए मैं किसी और को सुझाव दूंगा कि इस समस्या को वहां जाकर FB के साथ फ्लैग करने में मदद करें और पुष्टि करें कि आपको भी यह समस्या है।
tdous

समान समस्या का सामना करने वाले किसी भी व्यक्ति के लिए अद्यतन करें ... फेसबुक पर बग के रूप में रिपोर्ट करने वाले अन्य लोग सामने विवरण प्रदान करने या जानकारी का जवाब देने में इतने गर्म नहीं थे, इसलिए मैंने एक नई बग रिपोर्ट को फिर से सबमिट किया और इसे एक डेवलपर को सौंपा गया। बस FB से खबर सुनने का इंतजार है। Developers.facebook.com/x/bugs/357750474364812
tdous

4
दुख की बात है कि स्वीकृत उत्तर सही है। बग के "तय" होने के 3 महीने के इंतजार के बाद उन्होंने शार्क के स्वीकृत व्यवहार को बदल दिया। इसलिए इन मापदंडों का उपयोग नहीं किया जा सकता है।
tdous

जवाबों:


105

फेसबुक अब कस्टम पैरामीटर का समर्थन नहीं करता है sharer.php

हिस्सेदार अब कस्टम मापदंडों को स्वीकार नहीं करेगा और फेसबुक पूर्वावलोकन में प्रदर्शित की जाने वाली सूचना को उसी तरह खींचेगा जिस तरह वह फेसबुक पर url OG मेटा टैग से पोस्ट के रूप में दिखाई देगा।

Sharer.php के बजाय संवाद / फ़ीड का उपयोग करें

https://www.facebook.com/dialog/feed?
  app_id=145634995501895
  &display=popup&caption=An%20example%20caption 
  &link=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fdialogs%2F
  &redirect_uri=https://developers.facebook.com/tools/explorer

एफबी टीम से आधिकारिक जवाब


1
मुझे मेरे ही सवाल का जवाब देने के लिए मारो;)
tdous 12

32
लेकिन आपको इस मामले में ऐप आईडी की आवश्यकता है। क्या होगा अगर यह सिर्फ एक वेबसाइट है?
जर्मन कैपुआनो

3
फेसबुक से: वेब के लिए फीड डायलॉग को एपीआई संस्करण 2.0 में चित्रित किया गया है। वेब पर, डेवलपर्स को अधिक आधुनिक शेयर डायलॉग का उपयोग करने के लिए प्रोत्साहित किया जाता है, जो इन पुराने संवादों के समान ही सभी कार्य कर सकता है, लेकिन इसके अलावा फेसबुक लॉगिन की आवश्यकता के बिना कस्टम ओपन ग्राफ़ कहानियां प्रकाशित कर सकता है। Developers.facebook.com/docs/sharing/reference/share-dialog
RubeOnRails

यदि संभव हो तो, मैं फेसबुक एसडीके का उपयोग जावास्क्रिप्ट के साथ करने का सुझाव दूंगा। इसे कोड करना बहुत आसान है और मैं ऊपर दिए गए लिंक फॉर्म का उपयोग करने की तुलना में इसे बहुत कम उपयुक्त समझूंगा। एक नज़र डालें: Developers.facebook.com/docs/sharing/web
लिक्विडड्रैम

12
@ LiquidDrummer इस प्रकार के URL का उपयोग करने का संपूर्ण बिंदु यह है कि आपको SDK का उपयोग करने की आवश्यकता नहीं है । यह आपके पेज के लिए एक अनावश्यक प्रदर्शन जोड़ता है, एफबी लोगों की गोपनीयता पर आक्रमण करने में मदद करता है और एक सादे टैग या कॉल की तुलना में सरल नहीं है । <a>open()
3

98

18 जुलाई, 2017 से शुरू फेसबुक ने उपयोगकर्ताओं द्वारा निर्धारित कस्टम मापदंडों की अवहेलना करने का फैसला किया है। यह विकल्प इस उत्तर की पेशकश की कई संभावनाओं को अवरुद्ध करता है और यह कई वेबसाइटों पर उपयोग किए जाने वाले बटन को भी तोड़ता है।

quoteऔर hashtagमानकों को दिसंबर 2018 के रूप में काम करते हैं।


क्या कोई जानता है कि अगर हाल ही में कुछ बदलाव हुए हैं जो अचानक इसे काम करने से रोक सकते हैं?

पैरामीटर बदल गए हैं। वर्तमान में स्वीकृत उत्तर स्थिति:

फेसबुक अब कस्टम पैरामीटर का समर्थन नहीं करता है sharer.php

लेकिन यह पूरी तरह सही नहीं है। ठीक है, शायद वे नहीं समर्थन या समर्थन के लिए उन्हें है, लेकिन कस्टम पैरामीटर इस्तेमाल किया जा सकता है, तो आप सही नाम पता है। इसमें शामिल है:

  • URL (बेशक) → u
  • कस्टम छवि → picture
  • कस्टम शीर्षक → title
  • कस्टम बोली → quote
  • कस्टम विवरण → description
  • कैप्शन (उर्फ वेबसाइट का नाम) → caption

उदाहरण के लिए, आप इस प्रश्न को निम्न URL के साथ साझा कर सकते हैं:

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fstackoverflow.com%2Fq%2F20956229%2F1101509&picture=http%3A%2F%2Fwww.applezein.net%2Fwordpress%2Fwp-content%2Fuploads%2F2015%2F03%2Ffacebook-logo.jpg&title=A+nice+question+about+Facebook&quote=Does+anyone+know+if+there+have+been+recent+changes+which+could+have+suddenly+stopped+this+from+working%3F&description=Apparently%2C+the+accepted+answer+is+not+correct.

कोशिश करो!

मैंने एक उपकरण बनाया है जो कस्टम मापदंडों के साथ फेसबुक पर यूआरएल साझा करना आसान बनाता है । आप अपने sharer.phpलिंक को जेनरेट करने के लिए इसका इस्तेमाल कर सकते हैं , बस बटन दबाएं और खुलने वाले टैब से यूआरएल को कॉपी करें।


2
बहुत बहुत धन्यवाद, यह बहुत अच्छा है!
दुःस्वप्न_

1
@ TakácsZsolt आपको पृष्ठ पर JS की आवश्यकता नहीं है, आप बस अपने CMS या कस्टम कोड में URL सर्वर-साइड जनरेट कर सकते हैं और फिर उपयोगकर्ता को एक साधारण URL परोस सकते हैं। आधिकारिक शेयर बटन खराब है क्योंकि इसमें जेएस कोड के टन शामिल हैं और यह उपयोगकर्ताओं को ट्रैक करता है। इसके अलावा, यदि आप अपने स्वयं के URL साझा कर रहे हैं, तो आप बेहतर तरीके से फेसबुक के तेज मापदंडों पर भरोसा करने के बजाय उचित OpenGraph टैग प्रदान करेंगे। :)
एंड्रिया लेज़ारोत्तो

1
@ गौरवानी, हाँ आप सही हैं। जैसा कि उपकरण की टिप्पणियों पर चर्चा की गई है, उन्होंने मापदंडों को हटा दिया है और उन्हें हटा दिया है।
एंड्रिया लेज़रोज़ेटो

4
अप्रैल 2018 तक ऐसा लगता है कि इसके अलावा कोई भी पैरामीटर uचुपचाप नजरअंदाज किया जाता है।
leo

1
के अलावा uकेवल पैरामीटर मैं दिखाई देती हैquote
robskrob

3

आपकी समस्या मार्कर ओपनग्राफ की कमी के कारण होती है, जैसा कि आप कहते हैं कि यह संभव नहीं है कि आप किसी कारण से लागू करें।

आपके लिए, एकमात्र उपाय PHP Facebook API का उपयोग करना है

  1. सबसे पहले आपको अपने फेसबुक अकाउंट में एप्लिकेशन बनाना होगा।
  2. एप्लिकेशन बनाते समय आपके पास अपने कोड के लिए दो मुख्य डेटा होंगे:

    YOUR_APP_ID 
    YOUR_APP_SECRET
  3. फेसबुक PHP एसडीके को यहां से डाउनलोड करें

  4. आप अपनी साइट से सामग्री साझा करने के लिए इस कोड से शुरुआत कर सकते हैं:

    <?php
      // Remember to copy files from the SDK's src/ directory to a
      // directory in your application on the server, such as php-sdk/
      require_once('php-sdk/facebook.php');
    
      $config = array(
        'appId' => 'YOUR_APP_ID',
        'secret' => 'YOUR_APP_SECRET',
        'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
      );
    
      $facebook = new Facebook($config);
      $user_id = $facebook->getUser();
    ?>
    <html>
      <head></head>
      <body>
    
      <?php
        if($user_id) {
    
          // We have a user ID, so probably a logged in user.
          // If not, we'll get an exception, which we handle below.
          try {
            $ret_obj = $facebook->api('/me/feed', 'POST',
                                        array(
                                          'link' => 'www.example.com',
                                          'message' => 'Posting with the PHP SDK!'
                                     ));
            echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';
    
            // Give the user a logout link 
            echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
          } catch(FacebookApiException $e) {
            // If the user is logged out, you can have a 
            // user ID even though the access token is invalid.
            // In this case, we'll get an exception, so we'll
            // just ask the user to login again here.
            $login_url = $facebook->getLoginUrl( array(
                           'scope' => 'publish_stream'
                           )); 
            echo 'Please <a href="' . $login_url . '">login.</a>';
            error_log($e->getType());
            error_log($e->getMessage());
          }   
        } else {
    
          // No user, so print a link for the user to login
          // To post to a user's wall, we need publish_stream permission
          // We'll use the current URL as the redirect_uri, so we don't
          // need to specify it here.
          $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
          echo 'Please <a href="' . $login_url . '">login.</a>';
    
        } 
    
      ?>      
    
      </body> 
    </html>

आप फेसबुक डेवलपर्स साइट में अधिक उदाहरण पा सकते हैं:

https://developers.facebook.com/docs/reference/php


3
आप सही जोसेफ हैं, और मुझे आशा है कि आपके द्वारा दी गई जानकारी इस पृष्ठ को खोजने वाले के लिए उपयोगी है। उसकी वजह से मैंने इसे वोट दिया है। मैंने इसे केवल उत्तर के रूप में चिह्नित नहीं किया है क्योंकि हम पहले से ही जानते थे कि अगर फेसबुक ने किए गए परिवर्तनों को वापस नहीं लिया तो हमें PHP में वापस आना होगा। मैं जिस संपूर्ण समाधान की आशा करता हूं, वह यह है कि शार्प URL का उपयोग करने का एक तरीका एक समान तरीका है कि यह कैसे काम करता है, अब या भविष्य में मौजूद नहीं हो सकता है। लेकिन आपकी प्रतिक्रिया के लिए धन्यवाद और मुझे विश्वास है कि यह इस स्थिति में किसी के लिए उपयोगी होगा।
tdous

2

मैं आपके url की समीक्षा करता हूं:

https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE

और इस अंतर को देखें:

  1. शार्क का URL समान नहीं है।
  2. तार अलग-अलग क्रम में हैं। (पता नहीं कि यह प्रभावित करता है)।

मैं इस URL स्ट्रिंग का उपयोग करता हूं:

http://www.facebook.com/sharer.php?s=100&p[url]=http://www.example.com/&p[images][0]=/images/image.jpg&p[title]=Title&p[summary]=Summary

"शीर्षक" और "सारांश" अनुभाग में, मैं urlencode();इस तरह php फ़ंक्शन का उपयोग करता हूं :

<?php echo urlencode($detail->title); ?>

और मेरे लिए ठीक काम कर रहा है।


क्या यह अभी भी आपकी तरफ से काम कर रहा है? जब मैं आपका उदाहरण URL आज़माता हूँ, तो मुझे शीर्षक और सारांश प्रदर्शित नहीं हो रहा है!
vcarel

1
@vcarel यह केवल OpenGraph के साथ काम करता है, यही समस्या है। एक अन्य उत्तर में एक अलग विधि पोस्ट करें।
जोसेफ कॉलिन्स

@JosephCollins आपके अंतर के जवाब में: 1. URL "hxxp: //facebook.com/sharer.php" सिर्फ "hxxp: //facebook.com/sharer/sharer.php" पर पुनर्निर्देशित करता है, मैं इसे पीछे की संगत मानता हूं पिछले साझाकरण सुविधा के साथ। 2. खेतों के क्रम से कोई फर्क नहीं पड़ता। मैंने आपके आदेश की कोशिश अभी की है, अभी भी एक समस्या है। जैसा कि मैंने अपने मूल प्रश्न में कहा था, यह सही ढंग से काम करता है, फिर एक दिन यह हमारे अंत में कोई बदलाव नहीं हुआ। यह फेसबुक द्वारा बग के रूप में स्वीकार किया गया है, इसलिए यह केवल एक URL प्रारूप मुद्दा नहीं है। लेकिन वे निश्चित रूप से इसके बारे में कुछ भी करने में अपना मीठा समय ले रहे हैं।
tdous

-1

यदि आप अपने URL में 26% तक एन्कोड करते हैं तो यह सही तरीके से काम करता है। बस परीक्षण किया और सत्यापित किया।


अन्य उत्तरों द्वारा कवर किया गया है और मूल्य जोड़ने के लिए पर्याप्त रूप से पर्याप्त नहीं है।
utechtzs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.