# هل ينشر ChatGPT عبر Shager؟ نعم: اربطه بتسجيل الدخول، أو استخدم أحد ثلاثة طرق أخرى

_2026-09-05 · موصلات MCP في ChatGPT تسجّل الدخول عبر OAuth، وShager يدعمه: أضف Shager في وضع المطوّر، وسجّل الدخول ووافق. إضافة إلى Codex وAPI وسكربت._

نعم. موصلات MCP المخصصة في ChatGPT تصادق عبر OAuth، وخادم MCP في Shager يدعم تسجيل الدخول عبر OAuth. أضف https://app.shager.ai/api/mcp كموصل في وضع المطوّر، وسجّل الدخول إلى Shager ووافق، دون مفتاح لنسخه. ويمكنك أيضًا تشغيل نماذج OpenAI على Shager عبر Codex، أو عبر OpenAI API، أو باستخدام ChatGPT للكتابة وسكربت قصير للتسليم.

يشرح هذا المقال كيف تضيف الموصل، ويقدم شيفرة عاملة لكل طريق من الطرق الأخرى.

## كيف تضيف Shager موصلًا في ChatGPT؟

يصف دليل OpenAI حول [المصادقة في تطبيقات ChatGPT](https://developers.openai.com/apps-sdk/build/auth) النموذج المدعوم: الخوادم التي تحتاج إلى مصادقة تطبّق تدفق OAuth 2.1 وفق مواصفة التفويض في MCP، مع تفضيل Client ID Metadata Documents ودعم التسجيل الديناميكي للعملاء أيضًا. ويمكن للخوادم كذلك أن تعمل بلا مصادقة. ويذكر الدليل نفسه صراحةً أن ChatGPT لا يستطيع تقديم مفاتيح API مخصصة.

خادم Shager على https://app.shager.ai/api/mcp يتبع هذه المواصفة، ويدعم Client ID Metadata Documents والتسجيل الديناميكي للعملاء معًا. لربطه:

1. في ChatGPT، افتح Settings، ثم Apps & Connectors، وفعّل Developer mode وانقر Create.
2. سمِّه `Shager`، وأدخل `https://app.shager.ai/api/mcp` واختر OAuth.
3. انقر Connect. يفتح Shager: سجّل الدخول، واختر المؤسسة، ووافق.

وضع المطوّر متاح في باقات ChatGPT المدفوعة. يستطيع الاتصال القراءة وإنشاء المسودات. أما الجدولة والنشر فخانة منفصلة في شاشة الموافقة، تبقى متوقفة ما لم تفعّلها، ويمكنك قطع الاتصال في أي وقت من https://app.shager.ai/dashboard/agents.

### لماذا لا نضع وسيطًا بلا مصادقة أمام مفتاح API؟

يقترح البعض ذلك، وهي فكرة سيئة، خصوصًا أنك لم تعد بحاجة إليها. الوسيط الذي يقبل الطلبات غير المصادَق عليها ثم يضيف مفتاح Shager الخاص بك يحوّل صلاحية النشر لدى وكالتك إلى نقطة وصول عامة. كل من يعثر على الرابط يستطيع كتابة مسودات منشورات في مساحات عمل عملائك، ومع مفتاح `publish` يستطيع جدولتها أيضًا. لا تفعل ذلك.

## الطريق 1: ‏Codex، وكيل البرمجة من OpenAI

إن كان ما تريده هو «نموذج من OpenAI يشغّل Shager»، فإن Codex يفعل ذلك اليوم بسلاسة. فهو يدعم رموز Bearer المأخوذة من متغير بيئة لخوادم MCP العاملة عبر streamable HTTP، فلا يتطلب الإعداد سوى بضعة أسطر في `~/.codex/config.toml`:

```toml
[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
bearer_token_env_var = "SHAGER_API_KEY"
```

وتشير وثائق MCP لدى OpenAI إلى أن تطبيق ChatGPT لسطح المكتب وCodex CLI وإضافة بيئة التطوير تتشارك ملف الإعداد هذا. الشرح الكامل، بما فيه قائمة الأدوات المسموح بها، موجود في [ربط Shager بـ Codex](/ar/blog/connect-shager-to-codex).

## الطريق 2: ‏Responses API من OpenAI مع أداة MCP بعيدة

إن كنت تبني وكيلك الخاص على OpenAI API، فإن Responses API يستطيع استدعاء خوادم MCP البعيدة بنفسه. يوثّق [دليل الموصلات وMCP](https://developers.openai.com/api/docs/guides/tools-connectors-mcp) أداة `mcp` مع `server_url`، وحقل `authorization` لرمز الوصول، و`allowed_tools` و`require_approval`. وتذكر الوثائق أيضًا أن الـ API لا يخزّن قيمة `authorization`، فعليك إرسالها مع كل طلب.

```python
import os
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model=os.environ["OPENAI_MODEL"],
    input=(
        "In the Shager workspace 'Cedar Clinics', list the channels, then create a "
        "DRAFT post to all active channels announcing Saturday walk-in hours. "
        "Use a different caption per channel that names the clinic's town. "
        "cta_url https://cedarclinics.example/walk-in, campaign 'walk-in-sat'. "
        "Do not pass schedule_at."
    ),
    tools=[{
        "type": "mcp",
        "server_label": "shager",
        "server_url": "https://app.shager.ai/api/mcp",
        "authorization": os.environ["SHAGER_API_KEY"],
        "allowed_tools": [
            "whoami", "list_workspaces", "list_channels",
            "list_groups", "create_post", "get_post",
        ],
        "require_approval": {
            "never": {"tool_names": ["whoami", "list_workspaces", "list_channels", "list_groups", "get_post"]}
        },
    }],
)

print(response.output_text)
```

ثلاث ملاحظات من تجربة هذا النوع من الإعداد.

أولًا، اختبر المصادقة بـ `whoami` قبل أي شيء آخر. تقدّم وثائق OpenAI الحقل `authorization` على أنه حقل لرمز وصول OAuth، أما مفتاح Shager فهو رمز Bearer، لذا يخبرك الاستدعاء الأول فورًا هل تصل الترويسة بالشكل الذي ينتظره Shager. وإن عاد إليك الخطأ 401 في مخرجات الأداة، فانتقل إلى الطريق 3.

ثانيًا، تُرِكت `create_post` عمدًا خارج قائمة `never`، فيُعيد الـ API طلب موافقة قبل تنفيذها. تفحص شيفرتك الوسائط وتردّ باستجابة موافقة. إنها نقطة تحقق رخيصة، بشرية أو قائمة على قواعد، قبل كتابة أي مسودة.

ثالثًا، لا تمنح هذا المفتاح صلاحية `publish`. عندها، حتى الاستدعاء الذي تمت الموافقة عليه لن يستطيع سوى إنشاء مسودات.

## الطريق 3: ‏ChatGPT يكتب، وسكربتك يسلّم

هذا هو النمط الأكثر شيوعًا بين الوكالات التي تعيش داخل ChatGPT. يقوم النموذج بما يجيده، أي كتابة أربعين صيغة لنص واحد. ويتولى سكربت من عشرين سطرًا التسليم عبر REST API الخاص بـ Shager على https://app.shager.ai/api/v1، الموصوف بالكامل في [مستند OpenAPI](https://app.shager.ai/api/v1/openapi.json).

اطلب من ChatGPT مخرجات منظمة يمكنك لصقها في ملف:

```text
For each account below, write a caption for our Saturday walk-in hours post.
Vary the opening line and mention the town. Keep facts identical.
Return only JSON: [{"channel_id": "...", "caption": "..."}]
Accounts: <paste the id and name list from list_channels>
```

ثم أرسلها مسودةً:

```python
import json, os, requests

API = "https://app.shager.ai/api/v1"
H = {"Authorization": f"Bearer {os.environ['SHAGER_API_KEY']}"}
WS = os.environ["SHAGER_WORKSPACE_ID"]

captions = json.load(open("captions.json"))

r = requests.post(f"{API}/workspaces/{WS}/posts", headers=H, json={
    "caption": captions[0]["caption"],
    "channel_ids": [c["channel_id"] for c in captions],
    "per_channel": captions,
    "cta_url": "https://cedarclinics.example/walk-in",
    "campaign": "walk-in-sat",
    "first_comment": "Hours and directions: https://cedarclinics.example/walk-in",
}, timeout=60)

body = r.json()
if not r.ok:
    raise SystemExit(f"{body['error']['code']}: {body['error']['message']}")
print("draft", body["data"]["id"], body["data"]["status"])
```

تقبل المصفوفة `per_channel` كائنات تحتوي `channel_id` و`caption` (إضافة إلى `first_comment` و`format` اختياريًا)، فيدخل JSON الذي يُخرجه ChatGPT كما هو. ويحصل `cta_url` على رابط قصير ووسوم UTM مستقلة لكل حساب، مع `utm_content` يحمل اسم الحساب، وهذا ما يجعل نسبة النتائج إلى مصدرها ممكنة لاحقًا.

## أي طريق يناسب أي فريق؟

| الحالة | الطريق |
|---|---|
| تريد وكيلًا بأدوات في الطرفية أو بيئة التطوير اليوم | Codex مع `bearer_token_env_var` |
| تبني منتجك أو وكيلك الخاص على نماذج OpenAI | Responses API مع أداة `mcp`، أو REST مباشرة |
| فريقك يكتب في ChatGPT ولن يغادره | ChatGPT للنصوص، وسكربت للتسليم |
| تريد Shager داخل تطبيق ChatGPT نفسه | موصل مخصص في وضع المطوّر، بتسجيل الدخول عبر OAuth |

## ماذا يمنحك تسجيل الدخول؟

تضيف https://app.shager.ai/api/mcp خادم MCP مخصصًا في ChatGPT وتسجّل الدخول بحسابك في Shager، كما يصف [دليل OpenAI للاتصال من ChatGPT](https://developers.openai.com/apps-sdk/deploy/connect-chatgpt) الخوادم التي تتطلب مصادقة. يتصل كل شخص بحسابه الخاص بدلًا من مشاركة مفتاح. ويعمل سجل التدقيق بالطريقة نفسها، وكذلك الأدوات، التي تطابق عمليات REST واحدة بواحدة.

## أسئلة شائعة

### هل توجد أي طريقة لاستخدام مفتاح API في إعدادات الموصلات في ChatGPT؟

لا، وفق دليل OpenAI للمصادقة في تطبيقات ChatGPT، الذي يذكر وضعي OAuth وعدم المصادقة فقط، وينص على أن ChatGPT لا يستطيع تقديم مفاتيح API مخصصة. ولست بحاجة إلى مفتاح: اختر OAuth وسجّل الدخول. تعامل مع أي التفاف يكشف مفتاحك خلف نقطة وصول مفتوحة على أنه مشكلة أمنية، لا حل.

### هل يعمل Shager في ChatGPT على الهاتف؟

يتوقف ذلك على الأماكن التي يسمح فيها ChatGPT بخوادم MCP المخصصة، وهو قرار يعود إلى OpenAI وقد تغيّر خلال مراحل الإطلاق. راجع وثائق OpenAI الحالية بدلًا من الاعتماد على ما كان سابقًا.

### هل أحتاج إلى باقة مدفوعة في Shager لتجربة أي من هذه الطرق؟

لا. الوصول إلى API وMCP مشمول في كل الباقات، وخلال فترة الإطلاق يكون Shager مجانيًا ومن دون بطاقة، وسنُبلغك مسبقًا قبل أن نبدأ بالتحصيل. تجد حدود الحسابات لكل باقة في [صفحة الأسعار](/ar/pricing).

## الخطوة التالية

إن اخترت طريق الشيفرة، فأسرع وسيلة للبدء هي [دليل البدء السريع مع REST API](/ar/blog/shager-rest-api-quickstart)، الذي ينقلك من مفتاح جديد إلى مسودة متتبَّعة على حسابات متعددة في ستة استدعاءات.

---
Source: https://shager.ai/ar/blog/shager-and-chatgpt
